我正试图使用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
着色?
答案 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而不是新的。它也没有处理边界)