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

在里面

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

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;
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android地图标记颜色?

来自分类Dev

地图标记无法在HTML中使用

来自分类Dev

如何随机设置谷歌地图标记颜色?

来自分类Dev

将地图标记设置为自定义颜色的Android

来自分类Dev

如何动态设置Google地图标记大小

来自分类Dev

在Android中使用地图片段存储和加载地图标记

来自分类Dev

Android-动态自定义地图标记

来自分类Dev

谷歌地图-从javascript动态删除标记图标

来自分类Dev

在谷歌地图标记中设置自定义地图颜色

来自分类Dev

动态更改GoogleMap图标/标记的颜色

来自分类Dev

Android地图标记的非ASCII标题

来自分类Dev

在Android中将地图标记居中

来自分类Dev

如何使用谷歌地图标记地点

来自分类Dev

更改航点之间的颜色并使路线适合移动的地图标记

来自分类Dev

在角度Google地图上创建动态标记图标

来自分类Dev

在HTML中使用地图标记时,Google Chrome会绘制多边形

来自分类Dev

在 Rails 中使用 Capybara 和 Selenium 测试 Google 地图标记

来自分类Dev

在标记图标中使用带参数的svg

来自分类Dev

非对称地图标记

来自分类Dev

角度谷歌地图标记

来自分类Dev

RxJS 谷歌地图标记

来自分类Dev

谷歌地图标记比较

来自分类Dev

谷歌地图标记 Javascript

来自分类Dev

根据ng-repeat变量的值设置不同的地图标记图标

来自分类Dev

搜索Android地图标记标题和摘要

来自分类Dev

Android:将数字添加到地图标记

来自分类Dev

基于字符串参数的android谷歌地图标记

来自分类Dev

如何计算android中谷歌地图标记的点击次数

来自分类Dev

动态设置颜色集合视图标签背景色