Android 为标记着色

Android 为标记着色,android,android-maps-v2,Android,Android Maps V2,我正在尝试使用Google Maps v2对标记进行着色。以下解决方案不起作用: Drawable d = getResources().getDrawable(R.drawable.my_drawable); d.setColorFilter(getResources().getColor( R.color.tint_color), Mode.MULTIPLY); BitmapDescriptor bitmap = BitmapDescriptorFactory.fromBitmap(

我正在尝试使用Google Maps v2对
标记进行着色。以下解决方案不起作用:

Drawable d = getResources().getDrawable(R.drawable.my_drawable);
d.setColorFilter(getResources().getColor(
    R.color.tint_color), Mode.MULTIPLY);
BitmapDescriptor bitmap = BitmapDescriptorFactory.fromBitmap(((BitmapDrawable) d).getBitmap());
myMap.addMarker(new MarkerOptions().icon(bitmap).position(latLon));

是否有其他解决方案可以使
标记上色?

问题是,您正在给可绘制对象上色(实际上是在更改其颜色),但随后将传递基础位图。在mapsapi之外解决这个问题的一种方法(我不熟悉)是使用新位图将可绘制的图形绘制到画布上

Bitmap filtered = Bitmap.createBitmap(d.getBitmap());
Canvas canvas = new Canvas(filtered);
d.draw(canvas);

(这只是一个例子,它没有做任何错误处理-当Android返回相同的位图而不是新位图时,你应该处理这种情况。它也没有处理边界)

我尝试了你的答案,但第一行马上就错了。我得到代码错误提示“无法解析方法getBitmap()”。你能提供一个更全面的解释吗?