1. 程式人生 > >BaiduMap---百度地圖官方Demo之UI控制功能(介紹開關手勢功能和顯示隱藏UI控制元件)

BaiduMap---百度地圖官方Demo之UI控制功能(介紹開關手勢功能和顯示隱藏UI控制元件)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:orientation="horizontal" >

        <CheckBox
            android:id="@+id/zoom"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:checked="true"
            android:onClick="setZoomEnable"
            android:text="縮放" />

        <CheckBox
            android:id="@+id/scroll"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:checked="true"
            android:onClick="setScrollEnable"
            android:text="平移" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:orientation="horizontal" >

        <CheckBox
            android:id="@+id/rotate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:checked="true"
            android:onClick="setRotateEnable"
            android:text="旋轉" />

        <CheckBox
            android:id="@+id/overlook"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:checked="true"
            android:onClick="setOverlookEnable"
            android:text="俯視" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:orientation="horizontal" >

        <CheckBox
            android:id="@+id/compass"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:checked="true"
            android:onClick="setCompassEnable"
            android:text="開啟指南針" />
    </LinearLayout>

    <com.baidu.mapapi.map.MapView
        android:id="@+id/bmapView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:clickable="true" />

</LinearLayout>

/**
 * 演示地圖UI控制功能
 * 介紹開關手勢功能和顯示隱藏UI控制元件
 */
public class UISettingDemo extends Activity {

    /**
     * MapView 是地圖主控制元件
     */
    private MapView mMapView;
    private BaiduMap mBaiduMap;
    //UiSettings:百度地圖 UI 控制器
    private UiSettings mUiSettings;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_uisetting);

        mMapView = (MapView) findViewById(R.id.bmapView);
        mBaiduMap = mMapView.getMap();
        /**
         * getUiSettings():獲取地圖ui控制器
         * */     
        mUiSettings = mBaiduMap.getUiSettings();

        MapStatus ms = new MapStatus.Builder().overlook(-30).build();
        MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms);
        mBaiduMap.animateMapStatus(u, 1000);
    }

    /**
     * 是否啟用縮放手勢
     *
     * @param v
     */
    public void setZoomEnable(View v) {
        /**
         *setZoomGesturesEnabled(boolean enabled):設定是否允許縮放手勢
         * */
        mUiSettings.setZoomGesturesEnabled(((CheckBox) v).isChecked());
    }

    /**
     * 是否啟用平移手勢
     *
     * @param v
     */
    public void setScrollEnable(View v) {
        /**
         *setScrollGesturesEnabled(boolean enabled):設定是否允許拖拽手勢
         * */
        mUiSettings.setScrollGesturesEnabled(((CheckBox) v).isChecked());
    }

    /**
     * 是否啟用旋轉手勢
     *
     * @param v
     */
    public void setRotateEnable(View v) {
        /**
         *setRotateGesturesEnabled(boolean enabled):設定是否允許旋轉手勢
         * */
        mUiSettings.setRotateGesturesEnabled(((CheckBox) v).isChecked());
    }

    /**
     * 是否啟用俯視手勢
     *
     * @param v
     */
    public void setOverlookEnable(View v) {
        /**
         *setOverlookingGesturesEnabled(boolean enabled):設定是否允許俯視手勢
         * */
        mUiSettings.setOverlookingGesturesEnabled(((CheckBox) v).isChecked());
    }

    /**
     * 是否啟用指南針圖層
     *
     * @param v
     */
    public void setCompassEnable(View v) {
        /**
         *setCompassEnabled(boolean enabled):設定是否允許指南針
         * */
        mUiSettings.setCompassEnabled(((CheckBox) v).isChecked());
    }

    @Override
    protected void onPause() {
        // MapView的生命週期與Activity同步,當activity掛起時需呼叫MapView.onPause()
        mMapView.onPause();
        super.onPause();
    }

    @Override
    protected void onResume() {
        // MapView的生命週期與Activity同步,當activity恢復時需呼叫MapView.onResume()
        mMapView.onResume();
        super.onResume();
    }

    @Override
    protected void onDestroy() {
        // MapView的生命週期與Activity同步,當activity銷燬時需呼叫MapView.destroy()
        mMapView.onDestroy();
        super.onDestroy();
    }

}