Android 高德地图更改marker 图标大小

个人感觉高德地图的demo和API没有百度的写的详细。
高德地图设置marker,我们可以设置一个布局,用这个布局当marker。官方提供的设置ICON的方法是:

public MarkerOptions icon(BitmapDescriptor var1)

其中有BitmapDescriptorFactory这个方法:BitmapDescriptorFactory.fromView(view),返回类型是BitmapDescriptor,这里的View就是我们的布局。接下来就是老一套了,获取布局,然后放进去,就行了,这个布局就是要显示的marker。

另外说一下,通常来说项目中会有这个需求:点击marker,marker变大或者变小,这实际上就是不断的更改布局,然后设置给Marker。

附上公司项目截图:

就这个小问题,网上的答案真的不多。。。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
要替换 Android 高德地图 SDK 中 Marker图标,可以先通过`remove`方法将原来的 Marker地图上移除,然后再添加一个新的 Marker,例如: ```java Marker oldMarker = aMap.addMarker(new MarkerOptions() .position(new LatLng(39.90923, 116.397428)) .icon(BitmapDescriptorFactory.fromResource(R.drawable.old_marker))); // 先将旧的 Marker地图上移除 oldMarker.remove(); // 添加一个新的 Marker,并设置新的图标 Marker newMarker = aMap.addMarker(new MarkerOptions() .position(oldMarker.getPosition()) .icon(BitmapDescriptorFactory.fromResource(R.drawable.new_marker))); // 将新的 Marker 设置为当前 Marker,以便后续操作 currentMarker = newMarker; ``` 其中`currentMarker`是一个成员变量,用于保存当前的 Marker 对象。 如果需要动态修改 Marker图标,可以通过上述方法不断替换 Marker图标,例如: ```java BitmapDescriptor icon1 = BitmapDescriptorFactory.fromResource(R.drawable.marker1); BitmapDescriptor icon2 = BitmapDescriptorFactory.fromResource(R.drawable.marker2); // 添加一个初始的 Marker,并设置初始图标 Marker currentMarker = aMap.addMarker(new MarkerOptions() .position(new LatLng(39.90923, 116.397428)) .icon(icon1)); // 切换图标 new Handler().postDelayed(new Runnable() { @Override public void run() { // 先将当前的 Marker地图上移除 currentMarker.remove(); // 添加一个新的 Marker,并设置新的图标 Marker newMarker = aMap.addMarker(new MarkerOptions() .position(currentMarker.getPosition()) .icon(icon2)); // 将新的 Marker 设置为当前 Marker,以便后续操作 currentMarker = newMarker; } }, 2000); ``` 这样就可以在2秒钟后将 Marker图标切换为另外一个资源文件了,且不会重叠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值