Android - 如何复制setBuiltInZoomControls功能

时间:2010-06-21 15:05:41

标签: android

这是我的问题: 当我单击地图视图时,“setBuiltInZoomControls”方法显示缩放控件然后隐藏它。我想复制该功能,以便当我点击地图视图时,我想显示地图,卫星和交通按钮,但我的代码不起作用。

你能帮我解决这个问题吗?我在下面提供了我的代码。

这是我的xml代码:

parent"
    android:layout_height="fill_parent"
    android:id="@+id/mapLayout"
    >

<com.google.android.maps.MapView
    android:id="@+id/mapview1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:enabled="true"
    android:clickable="true"
    android:apiKey="0K5oQk-IVWGzfMbBkOhx5EDXDXhlBO1PJI8mLag" />

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="48px"
        android:background="#550000ff"
        android:padding="2px"
        android:id="@+id/mapBtnsControlls"
        android:visibility="invisible">

        <Button
            android:layout_width="wrap_content"
            android:id="@+id/btnMap"
            android:layout_height="wrap_content"
            android:text="Map"
            android:layout_marginLeft="53px"
            android:layout_marginRight="10px">
        </Button>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btnSatellite" 
            android:text="Satellite"
            android:layout_toRightOf="@+id/btnMap"
            android:layout_marginRight="10px">
        </Button>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/btnTraffic"
            android:layout_toRightOf="@+id/btnSatellite"
            android:text="Traffic">
        </Button>
    </RelativeLayout>   
</RelativeLayout>

这是我的java代码:

MapView googleMap= (MapView) findViewById(R.id.mapview1);
RelativeLayout mapBtnsLayout = (RelativeLayout) findViewById(R.id.mapBtnsControlls);

googleMap.setClickable(true);
googleMap.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
      mapBtnsLayout.setVisibility(View.VISIBLE);  
   }
}); 

1 个答案:

答案 0 :(得分:0)

不要在MapView上使用setClickable()和setOnClickListener(),而是尝试添加Overlay子类并覆盖onTouchEvent()以显示控件。