天天看點

android6.0 百度地圖,Android studio實作百度地圖顯示

最近做畢業設計老師給我們講解了如何使用百度地圖API,在自己學到知識的同時也想分享給大家,一來是互相學習,二來就是混一點csdn的積分,然後就能省錢下載下傳人家的項目再深入學習

效果圖

android6.0 百度地圖,Android studio實作百度地圖顯示

注冊百度地圖開發開放平台賬号

1、搜尋百度開發開放平台

android6.0 百度地圖,Android studio實作百度地圖顯示

如果有賬号的話就登入,沒有賬号注冊一個

登入後打開開發文檔,選擇androidSDK

android6.0 百度地圖,Android studio實作百度地圖顯示

接下來的操作在這個網址裡都有說明:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/ak.,就不一一詳解了,按照官方的說法去建立一個需要使用百度地圖API功能APP

android6.0 百度地圖,Android studio實作百度地圖顯示

下載下傳配置相關功能包http://lbsyun.baidu.com/index.php?title=sdk/download&action#selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar

android6.0 百度地圖,Android studio實作百度地圖顯示

根據自己需要開發的功能下載下傳相應的開發包

導包

下載下傳解壓後打開libs檔案夾并複制所有的檔案

android6.0 百度地圖,Android studio實作百度地圖顯示

打開android studio,在這裡切換到Project Files

android6.0 百度地圖,Android studio實作百度地圖顯示

切換後就可以看到libs檔案夾了

android6.0 百度地圖,Android studio實作百度地圖顯示

接下來,在app目錄下的build.gradle檔案中android塊中配置sourceSets标簽,如果沒有使用該标簽則新增,詳細配置代碼如下:

sourceSets {

main {

jniLibs.srcDir ‘libs’

}

}

如圖:

android6.0 百度地圖,Android studio實作百度地圖顯示

往工程中添加jar檔案

1、菜單欄選擇File -> Project Structure

2、在彈出的Project Structure對話框中選中左側的Modules清單下的app目錄,然後點選右側頁面中的Dependencies頁籤。如圖:

android6.0 百度地圖,Android studio實作百度地圖顯示

在彈出的對話框選擇我們剛剛導入的jar檔案

android6.0 百度地圖,Android studio實作百度地圖顯示

然後點選ok,ok,在build.gradle檔案就可以看到新添加了一行依賴

android6.0 百度地圖,Android studio實作百度地圖顯示

應用混淆(保證百度類不能被混淆,否則會出現網絡不可用等運作時異常)

現在我們的應用中已經內建了百度地圖SDK,當我們在打包混淆的時候需要注意于BaiduMap SDK 相關的内容不應該被混淆,是以我們需要配置混淆檔案。

1、打開app目錄下的build.gradle檔案,在release代碼塊中添加如下内容(若已經由Android Studio自動生成,則不用手動配置)

android6.0 百度地圖,Android studio實作百度地圖顯示

2、編寫混淆檔案,打開app目錄下的proguard-rules.pro檔案,添加如下代碼

-keep class com.baidu.** {;}

-keep class mapsdkvi.com.** {;}

-dontwarn com.baidu.**

顯示地圖

第一步 配置AndroidManifest.xml檔案(開發者key為建立應用時的key),如圖:

android6.0 百度地圖,Android studio實作百度地圖顯示

在AndroidManifest.xml檔案中加入如下代碼配置開發密鑰(AK)

android6.0 百度地圖,Android studio實作百度地圖顯示

第二步 在外部添加如下權限聲明(自Android6.0起部分權限的使用需要開發者在代碼中動态申請):

android6.0 百度地圖,Android studio實作百度地圖顯示

第三步 在布局檔案中添加地圖容器

MapView是View的一個子類,用于在Android View中放置地圖。MapView的使用方法與Android提供的其他View一樣。

android:id="@+id/bmapView"

android:layout_width=“match_parent”

android:layout_height=“match_parent”

android:clickable=“true” />

android6.0 百度地圖,Android studio實作百度地圖顯示

第四步 地圖初始化

建立一個自定義的Application,在其onCreate方法中完成SDK的初始化。示例代碼如下:

public class DemoApplication extends Application {

@Override

public void onCreate() {

super.onCreate();

//在使用SDK各元件之前初始化context資訊,傳入ApplicationContext

SDKInitializer.initialize(this);

//自4.3.0起,百度地圖SDK所有接口均支援百度坐标和國測局坐标,用此方法設定您使用的坐标類型.

//包括BD09LL和GCJ02兩種坐标,預設是BD09LL坐标。

SDKInitializer.setCoordType(CoordType.BD09LL);

}

}

android6.0 百度地圖,Android studio實作百度地圖顯示

第五步 在AndroidManifest.xml檔案中聲明該Application

android6.0 百度地圖,Android studio實作百度地圖顯示

第六步 建立地圖Activity,管理MapView生命周期(應用生命周期結束時地圖的生命周期也要結束,否則會背景運作,增加耗電量)

public class MainActivity extends Activity {

private MapView mMapView = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//擷取地圖控件引用

mMapView = (MapView) findViewById(R.id.bmapView);

}

@Override

protected void onResume() {

super.onResume();

//在activity執行onResume時執行mMapView. onResume (),實作地圖生命周期管理

mMapView.onResume();

}

@Override

protected void onPause() {

super.onPause();

//在activity執行onPause時執行mMapView. onPause (),實作地圖生命周期管理

mMapView.onPause();

}

@Override

protected void onDestroy() {

super.onDestroy();

//在activity執行onDestroy時執行mMapView.onDestroy(),實作地圖生命周期管理

mMapView.onDestroy();

}

}

android6.0 百度地圖,Android studio實作百度地圖顯示
android6.0 百度地圖,Android studio實作百度地圖顯示

源碼:https://download.csdn.net/download/baidu_41616022/12028742

本文參考:http://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-map/showmap