android应用 百度地图,Android学习之百度地图API的应用(一)
現在的地圖API很多,我就從百度地圖開始了,為了方面自己以后回顧,我會把所有學到的東西記錄下來,下面是學習記錄:
要使用百度地圖首先得申請一個KEY,可以到這里申請(需要注冊一個百度賬號),申請完之后將從官方下載的Lib導入自己的項目,我導入兩個jar包:baidumapapi_v2_1_2.jar、locSDK_3.1.jar、armeabi文件夾
申請key點擊:http://developer.baidu.com/map/android-mobile-apply-key.htm
百度地圖有三大核心類:
(一)BMapManger:獲取地圖引擎的管理類
(二)MapView :你所能看到的View
(三)MapController :用來對MapView進行一些操作,如放大,縮小等。。。
首先上效果圖,然后是demo的代碼,注釋寫在代碼中
MainActivity.java
public class MainActivity extends Activity {
private BMapManager manager;
private MapView mapView;
private MapController controller;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 驗證key
checkKey();
setContentView(R.layout.activity_main);
initView();
}
private void initView() {
mapView = (MapView) findViewById(R.id.mapView);
//添加放大和縮小按鈕
mapView.setBuiltInZoomControls(true);
controller = mapView.getController();
//設置縮放級別[3-19]
controller.setZoom(12);
}
private void checkKey() {
manager = new BMapManager(getApplicationContext());
manager.init(ConstantValue.KEY, new MKGeneralListener() {
// 驗證網絡后回調
@Override
public void onGetNetworkState(int iError) {
if (iError == MKEvent.ERROR_PERMISSION_DENIED) {
// 驗證失敗
}
}
// 驗證key后回調
@Override
public void onGetPermissionState(int iError) {
if (iError == MKEvent.ERROR_NETWORK_CONNECT) {
// 網絡連接異常
}
}
});
}
@Override
protected void onDestroy() {
mapView.destroy();
super.onDestroy();
}
@Override
protected void onPause() {
mapView.onPause();
super.onPause();
}
@Override
protected void onResume() {
mapView.onResume();
super.onResume();
}
}這里有兩點要說明下:
1.key的驗證要在View視圖初始化之前,因為view視圖中包含百度的MapView控件,如果順序倒了,則會報異常。
2.onDestroy()、onPause()、onResume()調用者三個方法是為了讓mapView跟Activity進行綁定,因為一些bug的原因,如果不綁定他們倆的生命周期,則在按返回鍵,重新回到地圖上的時候,地圖的顯示會異常,大家可以試著把三個方法注釋掉看看效果。
下面順便貼上布局代碼:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
android:id="@+id/mapView"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Demo源碼不上傳了,順便把需要的權限貼上了:
一些常用的功能:
int latitude = (int) (39.929 * 1E6);// 緯度
int longtitude = (int) (116.397 * 1E6);// 經度
private GeoPoint geoPoint = new GeoPoint(latitude, longtitude);
controller.setCenter(geoPoint);// 設置中心點
// controller.animateTo(geoPoint);// 平移
// controller.zoomIn();// 放大一級
// controller.zoomOut();// 縮小一級
// int mapRotation = mapView.getMapRotation();//獲取旋轉前的角度
// mapRotation += 30; //范圍[0,360]
// controller.setRotation(mapRotation);
初識百度地圖API的代碼先到著,接著繼續學習它的其他有趣的API
啟動另外的一個應用程序的Activity(三種方式)
第一種(我自己寫的):之前在網上看來一些,很多不是我要的可以啟動另外一個應用程序的主Activity.//這些代碼是啟動另外的一個應用程序的主Activity
反編譯APK文件的方法
步驟一:下載所需的工具,一共三個:三個工具打包下載地址:http://download.csdn.net/detail/vipzjyno1/7025729;工具介紹:1、apktool:可以提取出所用圖片和布
Android打造通用的下拉刷新組件
還記得上一篇blog的內容嗎?如果不記得建議先去了解一下,Android事件處理全面剖析,因為下拉刷新需要用到手勢的處理,而上一篇文章中,對事件處理
總結
以上是生活随笔為你收集整理的android应用 百度地图,Android学习之百度地图API的应用(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酒仙茅的功效与作用、禁忌和食用方法
- 下一篇: 牙周炎吃什么药止疼