簡體   English   中英

Android Google Maps:漸變顏色的自定義標記

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM