我有一个简单的Android应用程序,其中包含一个显示当前默认标记的Google Map。好的一点是,我可以简单地改变标记的颜色/色调,在我的情况下,这取决于标记将会过期的时间"
bitmapDescriptor = BitmapDescriptorFactory.defaultMarker(this.calculateMarkerHue(msg));
MarkerOptions markerOptions = new MarkerOptions()
.position(new LatLng(...))
.icon(bitmapDescriptor)
.title("Title")
.snippet("Snippet");
private float calculateMarkerHue(Message msg) {
float hue = <calculate some value 0.0..360.0 depending on msg>
return hue;
}
这完全没问题。但是,现在我想使用自定义标记来支持不同类型的标记。虽然我设法使用其他PNG drawable改变标记形状,但我没有成功对颜色进行任何更改。 (不同类型的)绘图,位图,画布,位图描述符的整个概念......我无法理解。
我尝试过在网上找到的各种东西,但没有任何效果。我得到了投射错误,空指针异常或没有错误,但没有关于设置颜色的效果。
答案 0 :(得分:1)
尝试添加drawable并通过画布绘制它:
bitmapFromDrawable
private BitmapDescriptor bitmapFromDrawable(Context context, int vectorResId) {
Drawable vectorDrawable = ContextCompat.getDrawable(context, vectorResId);
vectorDrawable.setBounds(0, 0, vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight());
Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
vectorDrawable.draw(canvas);
return BitmapDescriptorFactory.fromBitmap(bitmap);
}
应该是:
d ={(17, 19): 1, (22, 24): 0, (18, 24): 1}
x,y = zip(*d)
x,y