2013-04-11 58 views
1

我想要使用Google地图v2着色Marker。下面的解决方案是行不通的:地图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)); 

有没有得到Markers有色替代解决方案?

回答

3

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

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

(这仅仅是一个例子,它没有做任何错误处理 - 当Android为您提供回相同的位图,而不是一个新的,你应该处理的情况下,它也没有处理边界)

+0

我试过你的答案,但第一行是错误的。我得到代码错误提示“无法解析方法getBitmap()”。你能提供一个更全面的解释吗? – 2015-08-20 13:36:07