我正在尝试将图像(从服务器下载)显示为谷歌地图上的地图标记。我正在使用 Android-Maps-Extensions,因为我对 Google Map-Utils 的性能不满意。
现在我想知道如何使用 AME 异步加载地图标记图像。如果它不是一个集群,任务是显示图像本身。如果它是一个集群,我想显示第一个标记的图像和集群中的元素数量。
到目前为止,我已经完成了以下操作:
1) 设置地图聚类器
private void setupMapClusterer() {
mClusterOptions = new EClusterOptionsProvider(getContext());
ClusteringSettings clusteringSettings = new ClusteringSettings();
clusteringSettings.addMarkersDynamically(true);
clusteringSettings.clusterOptionsProvider(mClusterOptions);
mMap.setClustering(clusteringSettings);
}
2) 创建集群选项提供者
public EClusterOptionsProvider(Context context) {
mClusterOptions = new ClusterOptions();
mContext = context;
mIconGenerator = new IconGenerator(context);
// Inflate Layout
View markerView = LayoutInflater.from(context).inflate(R.layout.map_marker, null);
mImageView = (ImageView) markerView.findViewById(R.id.map_marker_image);
mTextView = (TextView) markerView.findViewById(R.id.map_marker_text);
// Setup Icon Generator
mIconGenerator.setContentView(markerView);
}
public Bitmap createIcon(Bitmap bmp, String text) {
mImageView.setImageBitmap(bmp);
mTextView.setText(text);
return mIconGenerator.makeIcon();
}
@Override
public ClusterOptions getClusterOptions(List<Marker> list) {
// Get Bitmap from first marker
Marker first = list.get(0);
mClusterOptions.icon(BitmapDescriptorFactory.fromBitmap(mIconGenerator.makeIcon()));
return mClusterOptions;
}
这给了我一个地图,其中集群有我的自定义视图(这是正确的),但我不知道在哪里下载图像以及如何将它们放入单个标记,尤其是集群。
当然,我不想提前下载所有图像(我们谈论的是 500 多张)图像。
在一个侧节点上:我正在使用 Volley 异步 dl 图像。