因项目需求,需要在百度地图上显示显示出用户头像,实现的大致思路是将百度地图的marker 标注物换成用户的网络头像,通过联网加载显示出来;然而刚开始我试了很多次,都没有成功,后来通过摸索,总算实现了,大致效果入下;
实现方法:
方法一、一次性将所有图片加载好再设置上去,但是这样不好控制加载时机,不太好
方法二、在图片加载成功后的回调里面设置到地图上,这样便于控制,虽然会慢一点,但是值得一试
我用了方法二,在请求数据成功的回调里面遍历数据list,拿到每个用户头像url,用Glide进行请求,代码入下:
private <T extends PoiDvo>void overlay(List<T> list) {
LatLngBounds.Builder builder = new LatLngBounds.Builder();
RequestBuilder<Bitmap> load = null;
//这里必须换成bitmap ,因为发现除了bitmap ,其他图片放到百度地图上都会按照图片的实际大小显示出来,对view 设置宽高也没用,只有对bitmap
//设置宽高才能控制用户头像大小;
RequestOptions options = new RequestOptions()