地图v2着色标记

时间:2013-04-11 05:57:38

标签: android android-maps-v2

我正试图使用​​Google Maps v2来Marker着色。以下解决方案无效:

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));

是否有替代解决方案让Markers着色?

1 个答案:

答案 0 :(得分:3)

问题是你是在绘制drawable(真的改变它的颜色),但是你正在传递底层的Bitmap。在Maps API(我不熟悉)之外解决这个问题的一种方法是使用新的Bitmap将Drawable绘制到Canvas。

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

(这只是一个例子,它没有进行任何错误处理 - 你应该处理这种情况,当Android为你提供相同的Bitmap而不是新的。它也没有处理边界)