Я работаю над картой в Android с несколькими наложенными значками, покрывающими ее. Моя проблема заключается в том, что значок каждого наложения является статическим и не изменяется с остальной частью карты при увеличении и уменьшении масштаба. Это может стать неудобным, если пользователь увеличивает или уменьшает изображение, а значки кажутся слишком большими или слишком маленькими.
Мое решение - создать несколько файлов изображений с разными размерами каждого значка. Однако я не уверен, как ссылаться на эти значки из моего (расширенного) класса MapView после того, как я уже создал их из моего:
public class Map extends MapActivity {
...
public onCreate() {
...
//Very simplified copy of my working code:
Drawable defaultDrawable = this.getResources().getDrawable(R.drawable.myicon);
List<Overlay> mapOverlays = mapView.getOverlays();
ItemizedOverlay overlayManager = new OverlayManager(defaultDrawable, this);
OverlayItem myOverlay = new OverlayItem(...);
overlayManager.addOverlay(myOverlay);
}
}
Я расширил класс MapView
, чтобы можно было запускать события масштабирования. В методе dispatchDraw()
я планирую разместить свой код замены значков, но я не уверен, как отсюда получить доступ к существующим наложениям карты и их значкам (и изменить просто их значков):
public class ZoomSensitiveMapView extends MapView {
private int oldZoomLevel;
...
public void dispatchDraw(Canvas canvas) {
super.dispatchDraw(canvas);
if (getZoomLevel() != oldZoomLevel) {
if (getZoomLevel() > 15) {
//Zoomed in closer
//Replace icons with bigger copies
}
else {
//Zoomed out further
//Replace icons with smaller copies
}
oldZoomLevel = getZoomLevel();
}
}
}
Я думал, что getOverlays()
может работать здесь, но это, похоже, возвращает только сами наложения, а не их значки.
Я на правильном пути? Как я могу заменить иконки без корректировки их координат наложения и т. Д.? Любая помощь или рекомендации будут с благодарностью здесь! (Надеюсь, мои объяснения достаточно ясны; если что-то не так, пожалуйста, попросите меня уточнить!) Заранее спасибо за вашу помощь!