編輯:關於Android編程
標注(Marker)是開發者最常使用的地圖覆蓋物志一,今天就來向大家介紹一些標注(Marker)的最基本使用方法!
實現目標:
1、構建基礎地圖頁面;
2、在地圖的中心點處添加 Marker;
3、實現 Marker 的點擊事件響應;
4、實現 Marker 的添加和靈活刪除;
為了實現以上目標,我們會分成以下若干步驟來進行。
第一步、創建工程,導入百度地圖 Android SDK;
具體創建工程的方式(略)。本示例主要是為了實現地圖及相關的覆蓋物功能,因此這裡我只使用 SDK 開發資源下載平台所提供的【基礎地圖】功能模塊即可。
相應下載地址為:http://lbsyun.baidu.com/sdk/download
勾選如圖所示:
選擇完成後,點擊開發包下載,將所下載開發包正確導入開發工程。
第二步、申請開發者秘鑰;
工程創建完成後,到 API 控制台,申請相應的開發秘鑰,為具體開發工作准備。
具體申請方式及注意事項,請參考:http://blog.csdn.net/callmesen/article/details/39523767 此處不再贅述。
<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+tdrI/bK9oaLQ3rjEIEFuZHJvaWRNYW5pZmVzdCDOxLz+o6zM7bzTv6q3osPY1L+6zcv50OjIqM/eo7s8L3A+CjxwPtTaIEFuZHJvaWRNYW5pZmVzdCDOxLz+1tCjrMztvNO/qreiw9jUv7rNy/nQ6Mioz96hozwvcD4KPHA+zO2807+qt6LD2NS/t73Kvcjnz8KjujwvcD4KPHA+PC9wPgo8cHJlIGNsYXNzPQ=="brush:java;">
添加所需權限如下:
第四步、創建基礎地圖;
在 xml 文件中添加 mapview 控件,如下所示:
在 java 代碼中初始化地圖 SDK,實現基礎地圖的展示:
//初始化地圖 SDK SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); //綁定XML中得 mapview 控件 mapView = (MapView) findViewById(R.id.bmapView);
第五步、獲取地圖中心點,並添加 Marker 對象;
實現的核心代碼如下:
baiduMap = mapView.getMap(); LatLng latLng = baiduMap.getMapStatus().target; //准備 marker 的圖片 BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher); //准備 marker option 添加 marker 使用 markerOptions = new MarkerOptions().icon(bitmap).position(latLng); //獲取添加的 marker 這樣便於後續的操作 marker = (Marker) baiduMap.addOverlay(markerOptions);
第六步、實現 Marker 的點擊事件響應;
利用 baidumap 對象的地圖監聽方法,實現針對 marker 的點擊響應,核心代碼如下:
//對 marker 添加點擊相應事件 baiduMap.setOnMarkerClickListener(new OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker arg0) { // TODO Auto-generated method stub Toast.makeText(getApplicationContext(), "Marker被點擊了!", Toast.LENGTH_SHORT).show(); return false; } });
第七步、利用 Button 控件,控制 Marker 的添加刪除;
這裡用 button 來控制在地圖上添加 或者 刪除一個 marker,首先在 xml 中添加一個 button 控件:
在 java 代碼中添加這個 button 的點擊事件響應,核心代碼如下:
//按鈕控制添加刪除 button button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub if(button.getText() == "添加Marker") { marker = (Marker) baiduMap.addOverlay(markerOptions); button.setText("刪除Marker"); } else { marker.remove(); button.setText("添加Marker"); } } });
本篇博客要做的效果圖:來個低質量動圖:這個動圖效果不是很好,實際上模糊效果應該是像上面第一張圖那樣的,後面會放出代碼,有興趣的可以試著運行一下看看效果。 先說一
Universal-Image-Loader是一個強大而又靈活的用於加載、緩存、顯示圖片的Android庫。它提供了大量的配置選項,使用起來非常方便。基本概念基本使用首次
主要內容:本文將要介紹Material design和Support library控件,主要包括TextInputLayout、SwitchCompat、SnackBa
查了好多資料,現發還是不全,干脆自己整理吧,至少保證在我的做法正確的,以免誤導讀者,也是給自己做個記錄吧!簡介android供給了三種菜單類型,分別為options me