摘要:徹底零基礎入門篇~~本文是安卓SDK的入門篇,從頭開始教你們如何建立一張安卓手機版的百度地圖。php
-----------------------------------------------------------------------------html
1、環境的安裝java
須要安裝eclipse、android ADT等環境。詳見:【百度地圖-安卓SDK】從頭開始寫android程序android
http://www.cnblogs.com/milkmap/archive/2011/11/25/2263475.htmlapi
2、新建一個helloworld程序app
一、File->New->Android Projecteclipse
二、輸入項目名稱->Nextide
三、選擇android版本->next佈局
百度地圖安卓SDK支持1.5以上的安卓版本。ui
因爲個人手機是2.2的,因此我勾選了android 2.2的選項。
四、輸入oackage name->finish
五、右鍵點擊工程->Run as->android application
我是鏈接真機運行的,固然用戶也可使用虛擬機。
不過使用虛擬機不能開啓定位功能哦。
六、運行成功!
3、建立一張百度地圖
一、註冊key:http://dev.baidu.com/wiki/static/imap/key/
三、新建libs文件夾
右鍵點擊項目->new->folder
輸入名稱->finish
將開發包解壓縮,會發現有兩個文件。
把baidumapapi.jar拷貝到libs根目錄下;把libBMapApiEngine.so拷貝到libs\armeabi目錄下。(armeabi目錄的新建方式和libs相似)
右鍵單擊項目->properties
Java Build Path->Libraries->Add JARs
選擇剛纔引入的jar文件->OK
四、找到androidManifest.xml文件,增長使用權限和版本支持的代碼。
androidManifest.xml所有源文件:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.baidu.milkmap" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".MilkmapActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <!-- 使用權限 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <!-- android 版本支持 --> <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true"/> <uses-sdk android:minSdkVersion="3"></uses-sdk> </manifest>
五、添加地圖控件
項目->res->layout->main.xml
這是佈局的xml文件,在這裏增長地圖控件的代碼。
main.xml文件所有源代碼以下:
<?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" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <!-- 添加控件 --> <com.baidu.mapapi.MapView android:id="@+id/bmapsView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" /> </LinearLayout>
六、編寫地圖程序
項目->src->milkmapActivity.java
這裏須要import一些文件,而後讓本身的mapactivity繼承百度提供的MapActivity。繼承的對象裏面,要申明變量,再寫方法。
(注意,類名和文件名保持一致!好比,個人文件名是MilkmapActivity.java,那麼個人地圖類名就是MilkmapActivity)
更換本身的key。
引入管理API的一些方法。
MilkmapActivity.java的所有源代碼:
package com.baidu.milkmap; import android.app.Activity; import android.os.Bundle; /** 引入import **/ import java.util.ArrayList; import java.util.List; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.Point; import android.graphics.drawable.Drawable; import android.location.Location; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Toast; import com.baidu.mapapi.BMapManager; import com.baidu.mapapi.GeoPoint; import com.baidu.mapapi.ItemizedOverlay; import com.baidu.mapapi.LocationListener; import com.baidu.mapapi.MKAddrInfo; import com.baidu.mapapi.MKDrivingRouteResult; import com.baidu.mapapi.MKGeneralListener; import com.baidu.mapapi.MKLocationManager; import com.baidu.mapapi.MKPlanNode; import com.baidu.mapapi.MKPoiResult; import com.baidu.mapapi.MKSearch; import com.baidu.mapapi.MKSearchListener; import com.baidu.mapapi.MKTransitRouteResult; import com.baidu.mapapi.MKWalkingRouteResult; import com.baidu.mapapi.MapActivity; import com.baidu.mapapi.MapController; import com.baidu.mapapi.MapView; import com.baidu.mapapi.MyLocationOverlay; import com.baidu.mapapi.Overlay; import com.baidu.mapapi.OverlayItem; import com.baidu.mapapi.PoiOverlay; import com.baidu.mapapi.RouteOverlay; import com.baidu.mapapi.TransitOverlay; /** 繼承MapActivity類 **/ public class MilkmapActivity extends MapActivity { /** 申明變量 **/ BMapManager mBMapMan = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /** 建立地圖 **/ mBMapMan = new BMapManager(getApplication()); mBMapMan.init("1713A92A7A0C854D1B8717670EF8B6CA75696567", null); super.initMapActivity(mBMapMan); MapView mMapView = (MapView) findViewById(R.id.bmapsView);//地圖控件,不添加的話,就不用寫。 mMapView.setBuiltInZoomControls(true); //設置啓用內置的縮放控件 MapController mMapController = mMapView.getController(); // 獲得mMapView的控制權,能夠用它控制和驅動平移和縮放 GeoPoint point = new GeoPoint((int) (39.915 * 1E6), (int) (116.404 * 1E6)); //用給定的經緯度構造一個GeoPoint,單位是微度 (度 * 1E6) mMapController.setCenter(point); //設置地圖中心點 mMapController.setZoom(12); //設置地圖zoom級別 //mMapView.setSatellite(true); //衛星圖 //mMapView.setTraffic(true); //交通流量 } @Override protected boolean isRouteDisplayed() { return false; } /** 引入方法管理API **/ @Override protected void onDestroy() { if (mBMapMan != null) { mBMapMan.destroy(); mBMapMan = null; } super.onDestroy(); } @Override protected void onPause() { if (mBMapMan != null) { mBMapMan.stop(); } super.onPause(); } @Override protected void onResume() { if (mBMapMan != null) { mBMapMan.start(); } super.onResume(); } }
七、運行,點擊綠色的運行按鈕就行。
OK啦,出來地圖了~