我想知道从网络加载 ItemizedOverlay 标记的正确方法是什么,以某种方式使用缓存。
现在我正在下载所有图像并将它们转换为drawables,它工作得很好,但我想看看是否有更好的方法来做到这一点。
public class ImageLoad extends AsyncTask<String, Bitmap, Bitmap> {
private String url;
private MapView mapView;
public ImageLoad() {
}
public ImageLoad(MapView mapView) {
this.mapView = mapView;
}
protected Bitmap doInBackground(String... params) {
url = params[0];
try {
return BitmapFactory.decodeStream(new URL(url).openConnection().getInputStream());
} catch (MalformedURLException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onPostExecute(Bitmap result) {
Drawable d = new BitmapDrawable(mapView.getContext().getResources(), result);
SimpleItemizedOverlay itemizedOverlay = new SimpleItemizedOverlay(d, mapView);
GeoPoint p = new GeoPoint(32061628, 34774767);
itemizedOverlay.addOverlay(new OverlayItem(p, "zzz", "zzz"));
mapView.getOverlays().add(itemizedOverlay);
mapView.invalidate();
super.onPostExecute(result);
}
}