[英]Android Google Maps: Custom marker for gradient color
我有一個帶有Google Map的簡單Android應用,可顯示當前默認標記。 不錯的是,我可以簡單地更改標記的顏色/色相,在我的情況下,這取決於標記“失效”的時間
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並通過畫布繪制它,例如:
markerOptions.icon(bitmapFromDrawable(getActivity(), R.drawable.your_gradient));
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.