nol*_*man 10 android google-maps google-maps-markers markerclusterer google-maps-android-api-2
我正在使用谷歌地图Android API实用程序库,我正在从互联网上下载我想用作标记的某些图像.我正在做的方式就像在下面的代码片段:
class MarkerItemClusterRenderer extends DefaultClusterRenderer<MarkerItem> {
...
@Override
protected void onBeforeClusterItemRendered(MarkerItem item,
final MarkerOptions markerOptions) {
super.onBeforeClusterItemRendered(item, markerOptions);
mImageLoader.get(item.getImageUrl(), new ImageListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("XXX", error.toString());
}
@Override
public void onResponse(ImageContainer response, boolean isImmediate) {
if (response != null && response.getBitmap() != null) {
mImageIcon.setImageBitmap(response.getBitmap());
Bitmap icon = mIconGenerator.makeIcon();
Bitmap bhalfsize = Bitmap.createScaledBitmap(icon, 150,
150, false);
markerOptions.icon(BitmapDescriptorFactory
.fromBitmap(bhalfsize));
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
问题是,当下载图像时,地图(以及标记)不会刷新,因此大多数时候(但并非总是如此)我仍然会看到红色的默认标记.
我试过,mImageIcon.invalidate(); mImageIcon.requestLayout();但仍然没有运气.
反正有没有实现这个目标?非常感谢提前.
你只需要把所有这些东西放进去
protected void onClusterItemRendered(T clusterItem, Marker marker) {
...
}
Run Code Online (Sandbox Code Playgroud)
在异步回调中onBeforeClusterItemRendered设置图标MarkerOptions。这时候它可以被添加到地图并成为真实的Marker。所以你的图标将被设置为已经无用的对象。
这就是为什么你需要在 onClusterItemRendered
小智 0
假设您将 GoogleMap 对象声明为: private GoogleMap mMap;
在 onResponse() 方法中,在对标记应用任何更改之前,尝试编写以下语句来清除以前的标记: mMap.clear();
现在设置您的新标记。
| 归档时间: |
|
| 查看次数: |
1896 次 |
| 最近记录: |