Android----高德地图多个Marker加载网络图片出现图片不显示问题

在Android应用中使用高德地图API时,遇到在Marker上加载网络图片显示不全的问题。原因是图片加载异步,有时在图片未加载完成时已将View转为Bitmap。通过添加Glide的图片加载监听并在图片加载完成后转换Bitmap,解决了部分问题。但仍有部分图片无法显示。进一步研究发现,应在into()方法中使用SimpleTarget来确保图片已加载到imageView后再转为Bitmap,从而成功显示所有Marker上的网络图片。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求说要地图上展示的是mark,不是infowindow,加载出网络图片,由于app的marker比较多,没有达到需要的效果。

看了看高德地图api中有这个方法

markerOption.icon(BitmapDescriptorFactory.fromBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.location_marker)));

fromBitmap里面的参数也可以是bitmap,于是可以自定义一个View把这个view转成bitmap。

这是做好所有工作以后,发现有的图片能显示出来,有的显示不出来。

由于加载图片的时候是异步的,有时候会在图片还没有加载完成的时候,view已经被转成bitmap,而这时Glide还在加载图片图,当glide加载工作完成时,要把图片展示在imageView上时,发现已经找不到这个imageView的id了,因此导致有些marker显示不出来图片。

于是我就添加了一个Glide图片加载完成的监听,在Glide图片加载完成之时再去把View转成bitmap,如下代码所示

Glide.with(this).load(list.get(i).getGasLogoSmall()).
                    placeholder(R.mipmap.gas_small_logo)
                    .transform(new Gli
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程思扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值