这两天在做项目时,碰到一个问题就是点击地图界面覆盖物后弹出一个自定义的窗口类似于popupwindow,百度地图官方demo给出的弹窗只有文字,不需要加载网络图片,而我们的项目中需要加载头像(网络图片),我用的是第三方的imageloder,发现当手touch地图界面和松开时头像会变化,显示前一张。找了两天也没有在网上找的相关解决办法,大部分的demo都是只加载文字什么的。不过最后还是有大神提出来啦
幸好之前正好用过imageloder的监听,所以一下就理解啦,监听方法里有些是不需要的方法可以删掉的。
贴出显示的完整代码 ,其中ContactIP.ALLIP.PIC_IP
headurl是图片地址,popleft是图片显示的位置。pop.showPopup(viewCache,
item.getPoint(), 60);
是弹窗的显示,放在
onLoadingComplete里显示果然就好了呢,既可以解决第一点击不加载图片问题,又解决了显示不稳定的问题。不过不清楚原理。。。
if (!TextUtils.isEmpty(headurl)) {
imageLoader.displayImage(ContactIP.ALLIP.PIC_IP headurl,
popleft, options,
new SimpleImageLoadingListener() {
public void onLoadingStarted(String imageUri, View view) {
}
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
String message = null;
switch (failReason.getType()) {
case IO_ERROR:
message = "下载错误";
break;
case DECODING_ERROR:
message = "图片无法显示";
break;
case NETWORK_DENIED:
message = "网络有问题,无法下载";
break;
case OUT_OF_MEMORY:
message = "图片太大无法显示";
break;
case UNKNOWN:
message = "未知的错误";
break;
}
}
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage) {
pop.showPopup(viewCache, item.getPoint(), 60);
}
});
}