いくつかの .png ファイルでマップにオーバーレイを追加しています。正常に動作しますが、ビットマップ サイズが VM 予算を超えているというエラーがスローされることがあります。リストビューに画像を追加するときにこの同じ問題が発生したとき、SoftReferenceを適用して解決しました。しかし、マップビューにオーバーレイを追加するためにそれを適用する方法がわかりません。アイデアをください。ありがとう
このようにオーバーレイを追加します
public ItemizedOverlayMarker(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
@Override
public int size() {
return mOverlays.size();
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
次のように ItamizerOverlay を呼び出します。
final List<Overlay> mapOverlaysResult = mapView.getOverlays();
Drawable drawableResult = getResources().getDrawable(R.drawable.pin_pink);
final ItemizedOverlayMarker itemizedoverlayResult = new ItemizedOverlayMarker(drawableResult, this);
for (int i = 0; i < Constants.listOfPlaces.size(); i++) {
GeoPoint geoPoint = new GeoPoint((int)(Double.parseDouble(latitude) * 1E6), (int)(Double.parseDouble(longitude) * 1E6));
OverlayItem overlayitem = new OverlayItem(geoPoint, name, vicinity);
itemizedoverlayResult.addOverlay(overlayitem);
}