你將如何去創建和覆蓋整個地圖的ItemizedOverlay?Android覆蓋整個地圖
我在地圖上有多個標記是ItemizedOverlay類。
我想創建另一個覆蓋整個地圖的ItemizedOverlay來攔截不在我的標記上但是地圖本身上的觸摸事件。我已閱讀其他SO問題,如one,唯一的方法是通過ItemizedOverlay-> onTap。問題是我不知道如何創建覆蓋整個地圖的Drawable標記。
我已經使用LinearLayout drawables進行了實驗,但它似乎只能將可繪製圖像用作標記。
這裏是我的代碼
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>
在此先感謝
爲什麼要中斷對區域觸摸事件,而不需要標記? – Flo 2011-05-06 08:22:16
我使用背景觸摸來關閉用戶點擊標記時顯示的彈出視圖。 – railwayparade 2011-05-06 12:01:08