Как бы вы пошли о создании и ItemizedOverlay, который охватывает всю карту?
У меня есть несколько маркеров на карте, которые являются классами ItemizedOverlay.
Я хочу создать еще один ItemizedOverlay, который охватывает всю карту, чтобы перехватывать события касания, которые находятся не на моих маркерах, а на самой карте. Я читал в других SO-вопросах, подобных этому one , что единственный способ сделать это - через ItemizedOverlay-> onTap. Проблема в том, что я не знаю, как создать маркер Drawable, который покрывает всю карту.
Я экспериментировал с рисованными объектами LinearLayout, но он, по-видимому, может использовать нарисованное изображение в качестве маркера.
Вот мой код
private class BackgroundOverlay<Item extends OverlayItem> extends ItemizedOverlay<OverlayItem>{
private ArrayList<OverlayItem> overlays = new ArrayList<OverlayItem>();
/**
* @param defaultMarker
*/
public BackgroundOverlay(Drawable defaultMarker,Context context) {
super(boundCenterBottom(defaultMarker));
}
@Override
protected OverlayItem createItem(int i) {
return overlays.get(i);
}
@Override
public int size() {
return overlays.size();
}
public void addOverlay(OverlayItem overlay) {
overlays.add(overlay);
populate();
}
protected boolean onTap(int index){
Toast.makeText(getApplicationContext(), "Touched background",Toast.LENGTH_SHORT).show();
return true;
}
}
и для создания оверлея
Drawable d=this.getResources().getDrawable(R.layout.full_screen);
BackgroundOverlay<OverlayItem> lay = new BackgroundOverlay<OverlayItem>(d,this);
overlayItem = new OverlayItem(this.mapView.getMapCenter(), "", "");
lay.addOverlay(overlayItem);
mapOverlays.add(lay);
и отрисовываемый xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/blue">
</LinearLayout>
Заранее спасибо