Android默认的聚合点样式为蓝底白字的圆圈,我需要修改其样式   

1.修改聚合点图标

找到text_bubble.xml文件.在

里面设置你需要显示的样式

我的是

android:background="@drawable/red_66x65"
<?xml version="1.0" encoding="utf-8"?>                

修改后预览效果如下

然后运行项目你会发现  虽然聚合点样式改了 但是怎么还有默认的背景蓝色  而不是自己想要的透明底色的图标

2.去掉默认的蓝色

找到

DefaultClusterRenderer类查看源码发现在构造函数里面有一句
 mIconGenerator.setBackground(makeClusterBackground());

进入makeCluesterBackground()方法

    private LayerDrawable makeClusterBackground() {        mColoredCircleBackground = new ShapeDrawable(new OvalShape());        ShapeDrawable outline = new ShapeDrawable(new OvalShape());        outline.getPaint().setColor(0x80ffffff); // Transparent white.        LayerDrawable background = new LayerDrawable(new Drawable[]{outline, mColoredCircleBackground});        int strokeWidth = (int) (mDensity * 3);        background.setLayerInset(1, strokeWidth, strokeWidth, strokeWidth, strokeWidth);        return background;    }

发现颜色是通过mColoredCircleBackground对象得到的  然后搜索mColoredCircleBackground

找到其设置颜色的位置在onBeforeClusterRendered()方法里面

如图将

mColoredCircleBackground.getPaint().setColor(getColor(bucket));

修改为

mColoredCircleBackground.getPaint().setColor(Color.TRANSPARENT);

这样就去掉了默认的圆形背景颜色

背景颜色修改完  发现红色背景跟白色的字好像不搭  怎么办  要修改聚合点的字体颜色了

然后回头去text_bubble.xml文件中修改Textview的textcolor?这是没效果的

仔细查看发现

其实还是在

DefaultClusterRenderer类里面,你会看到构造方法里面有一个
mIconGenerator.setTextAppearance(R.style.ClusterIcon_TextAppearance);

然后点进style文件将textcolor改为自己需要的样式就好了

至于修改点聚合每一个item的的样式,百度地图demo里面有   getBitmapDescriptor()的resource替换成自己需要的图标就行了

  /**     * 每个Marker点,包含Marker点坐标以及图标     */    public class MyItem implements ClusterItem {        private final LatLng mPosition;                public MyItem(LatLng latLng) {            mPosition = latLng;        }        @Override        public LatLng getPosition() {            return mPosition;        }        //设置marker图标        @Override        public BitmapDescriptor getBitmapDescriptor() {            return BitmapDescriptorFactory                    .fromResource(R.drawable.icon_gcoding);        }        @Override        public String toString() {            return "MyItem{" +                    "mPosition=" + mPosition +                    '}';        }    }

这里参考了https://blog.csdn.net/shaoyezhangliwei/article/details/60959852实现的修改聚合点图标

更多相关文章

  1. android修改TextView中部分文字的颜色来实现高亮效果
  2. Android使用矢量图(SVG, VectorDrawable)实践篇
  3. Android(安卓)Notification自定义通知样式你要知道的事(android 8
  4. Android(安卓)高级UI
  5. [置顶] android 自己创建一个注释模板
  6. android webview内嵌网页js解析json 并根据json数据生成表单以及
  7. Android系统移植与调试之------->如何修改Android默认字体大小和
  8. android中软键盘enter键更改图标
  9. Android(安卓)USB默认连接模式为MTP

随机推荐

  1. Google Docs for Android(安卓)应用改进
  2. 后台应用不应做Android待机电池杀手
  3. Android编译系统入门(一)
  4. Unity导出android工程集成到android stud
  5. 大话企业级android读书笔记(一)
  6. Android(安卓)创建定时任务
  7. 【Android(安卓)开发入门】使用Android模
  8. Android软件权限知识普及
  9. Android条码扫描二维码扫描——ZXing and
  10. Android(安卓)调试桥(adb)是多种用途的工