package baidumapsdk.demo.map; import android.app.Activity; import android.graphics.Color; import android.graphics.Point; import android.os.Bundle; import android.view.Gravity; import android.view.View; import android.widget.CheckBox; import android.widget.TextView; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapStatus; import com.baidu.mapapi.map.MapStatusUpdate; import com.baidu.mapapi.map.MapStatusUpdateFactory; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.MapViewLayoutParams; import com.baidu.mapapi.map.UiSettings; import baidumapsdk.demo.R; /** * 演示地图UI控制功能 */ public class UISettingDemo extends Activity { /** * MapView 是地图主控件 */ private MapView mMapView; private BaiduMap mBaiduMap; private UiSettings mUiSettings; private static final int paddingLeft = 0; private static final int paddingTop = 0; private static final int paddingRight = 0; private static final int paddingBottom = 200; TextView mTextView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_uisetting); mMapView = (MapView) findViewById(R.id.bmapView); mBaiduMap = mMapView.getMap(); mUiSettings = mBaiduMap.getUiSettings(); MapStatus ms = new MapStatus.Builder().build(); MapStatusUpdate u = MapStatusUpdateFactory.newMapStatus(ms); mBaiduMap.animateMapStatus(u, 1000); mMapView.postDelayed(new Runnable() { @Override public void run() { // 介绍获取比例尺的宽高,需在MapView绘制完成之后 int scaleControlViewWidth = mMapView.getScaleControlViewWidth(); int scaleControlViewHeight = mMapView.getScaleControlViewHeight(); } }, 0); } /** * 是否启用缩放手势 * * @param v */ public void setZoomEnable(View v) { mUiSettings.setZoomGesturesEnabled(((CheckBox) v).isChecked()); } /** * 是否启用平移手势 * * @param v */ public void setScrollEnable(View v) { mUiSettings.setScrollGesturesEnabled(((CheckBox) v).isChecked()); } /** * 是否启用旋转手势 * * @param v */ public void setRotateEnable(View v) { mUiSettings.setRotateGesturesEnabled(((CheckBox) v).isChecked()); } /** * 是否启用俯视手势 * * @param v */ public void setOverlookEnable(View v) { mUiSettings.setOverlookingGesturesEnabled(((CheckBox) v).isChecked()); } /** * 是否启用指南针图层 * * @param v */ public void setCompassEnable(View v) { mUiSettings.setCompassEnabled(((CheckBox) v).isChecked()); } /** * 是否显示底图默认标注 * * @param v */ public void setMapPoiEnable(View v) { mBaiduMap.showMapPoi(((CheckBox) v).isChecked()); } /** * 是否禁用所有手势 * * @param v */ public void setAllGestureEnable(View v) { mUiSettings.setAllGesturesEnabled(!((CheckBox) v).isChecked()); } /** * 设置Padding区域 * * @param v */ public void setPadding( View v) { if (((CheckBox) v).isChecked()) { mBaiduMap.setViewPadding(paddingLeft, paddingTop, paddingRight, paddingBottom); addView(mMapView); } else { mBaiduMap.setViewPadding(0, 0, 0, 0); mMapView.removeView(mTextView); } } private void addView(MapView mapView) { mTextView = new TextView(this); mTextView.setText(getText(R.string.instruction)); mTextView.setTextSize(15.0f); mTextView.setGravity(Gravity.CENTER); mTextView.setTextColor(Color.BLACK); mTextView.setBackgroundColor(Color.parseColor("#AA00FF00")); MapViewLayoutParams.Builder builder = new MapViewLayoutParams.Builder(); builder.layoutMode(MapViewLayoutParams.ELayoutMode.absoluteMode); builder.width(mapView.getWidth()); builder.height(paddingBottom); builder.point(new Point(0, mapView.getHeight())); builder.align(MapViewLayoutParams.ALIGN_LEFT, MapViewLayoutParams.ALIGN_BOTTOM); mapView.addView(mTextView, builder.build()); } @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(); } }