在Android中使用动态颜色设置地图标记图标

在Android中使用动态颜色设置地图标记图标,第1张

概述如何设置具有动态颜色的自定义标记图标,该图标只能更改具有动态颜色的绿色区域googleMap.addMarker(newMarkerOptions().position(latLng).visible(true).icon(BitmapDescriptor

如何设置具有动态颜色的自定义标记图标,该图标只能更改具有动态颜色的绿色区域

GoogleMap.addMarker(new MarkerOptions()                                .position(latLng)                                .visible(true)                          .icon(BitmapDescriptorFactory.fromBitmap(changeBitmapcolor(color))));

//这里将动态颜色设置为标记图标

private Bitmap changeBitmapcolor(int color) {        Bitmap sourceBitmap = BitmapFactory.decodeResource(getResources(),                R.drawable.pin_def);        Bitmap resultBitmap = Bitmap.createBitmap(sourceBitmap, 0, 0,                sourceBitmap.getWIDth() - 1, sourceBitmap.getHeight() - 1);        Paint p = new Paint();        colorFilter filter = new lightingcolorFilter(color, 0);        p.setcolorFilter(filter);        Canvas canvas = new Canvas(resultBitmap);        canvas.drawBitmap(resultBitmap, 0, 0, p);        return  resultBitmap;    }

/ /它的工作,但它也改变白色.如何避免这种情况,仅更改绿色并保持中心白色区域不变.谢谢.

解决方法:

我通过以下方式实现了这一目标.我使用了两个单独的图像(带有徽标和不带相同尺寸的徽标),带有徽标的图像是透明的,并将它们合并为一个图像.

GoogleMap.addMarker(new MarkerOptions()                                        .position(latLng)                                        .visible(true).snippet(String.valueOf(i))                                        .icon(BitmapDescriptorFactory.fromBitmap(changeBitmapcolor(color))));private Bitmap changeBitmapcolor(int color) {        Bitmap ob = BitmapFactory.decodeResource(this.getResources(), R.drawable.pin_fill);        Bitmap obm = Bitmap.createBitmap(ob.getWIDth(), ob.getHeight(), Bitmap.Config.ARGB_8888);        Bitmap overlay = BitmapFactory.decodeResource(this.getResources(), R.drawable.pin_trans);        Bitmap overlaym = Bitmap.createBitmap(overlay.getWIDth(), overlay.getHeight(), Bitmap.Config.ARGB_8888);        Canvas canvas = new Canvas(overlaym);        Paint paint = new Paint();        paint.setcolorFilter(new PorterDuffcolorFilter(color, PorterDuff.Mode.SRC_Atop));        canvas.drawBitmap(ob, 0f, 0f, paint);        canvas.drawBitmap(overlay, 0f, 0f, null);        return overlaym;    }
总结

以上是内存溢出为你收集整理的在Android中使用动态颜色设置地图标记图标全部内容,希望文章能够帮你解决在Android中使用动态颜色设置地图标记图标所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1120578.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存