您的位置:首页 > 移动开发 > Android开发

Android 百度地图开发 应用到自己的项目中

2015-08-25 18:00 701 查看
研究了两天的百度地图,下面是我的博客,大家一起学习啊

第一步:申请百度地图的API key

申请地址http://developer.baidu.com/map/index.php?title=首页(前提要有自己的百度账号)











注意:安全码的问题,如下图所示,一步一步来,便可以得到自己想要的东西





安全码是Android签名证书的证书指纹 (SHA1)值 + “;” + 你的应用程序包名,所以当你配置好了API key 你不能随意更换应用程序的包名, 如果更换了包名我们需要重新配置API key,接下来我们来介绍怎么获取数字签名

我们知道我们开发的Android程序是需要给他签名的,如果没有签名是不允许被安装到手机或者模拟器的,那么你会有疑问,我平常开发的应用确实没签名,怎么能在模拟器或者手机上直接运行呢,其实ADT会自动的使用debug密钥为应用程序签名,当然你也可以自己创建一个属于你自己的密钥,直接用Eclipse可视化创建就行了,很方便的,这里我就不介绍了

这里我们用debug.keystore来生成Android签名证书的证书指纹 (SHA1)值,可以在eclipse中直接查看:winows
-> preferance -> android -> build。 如下图示:



红色框框里面的东西就是我们需要的Android签名证书的证书指纹
(SHA1)值,然后我们复制出来,输入到API key的安全码输入框里面,再用分号隔开加上你的应用程序包名,如  02:5C:80:25:B2:8F:6F:60:54:B9:F4:B2:EF:94:FF:EE:CC:3C:5A:29;com.example.baidumapdemo 这样子我们就配置好了API key。

上面是eclipse的查找法,因为我用的是idea,所以有用idea的同学可以参考:
http://www.eoeandroid.com/thread-567929-1-1.html
以上讲的都是两种方法,根据自己的情况可以定。

第二步:下载百度地图库

要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包,下载地址http://developer.baidu.com/map/sdkandev-download.htm,下载Android
SDKv2.1.3 lib库就行了

第三步:应用到自己的项目中去

1.布局文件

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<com.ncsyeyy.YeyyBaiDuMap.MyLocationMapView
android:id="@+id/bmapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true" />

<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="10dp"
android:background="@drawable/edit_bg_all" >

<EditText
android:id="@+id/txtAddr"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginRight="2dp"
android:layout_toLeftOf="@+id/btOk"
android:background="@drawable/edit_bg_all"
android:completionThreshold="2"
android:drawableLeft="@drawable/qz_icon_seabar_search"
android:hint="请输入搜索关键字" />

<TextView
android:id="@+id/btOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="2dp"
android:layout_toLeftOf="@+id/s2"
android:text="搜索"
android:textSize="18sp" />

<ImageView
android:id="@+id/s2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="2dp"
android:layout_toLeftOf="@+id/btget"
android:src="@drawable/slide_center" />

<TextView
android:id="@+id/btget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:text="定位"
android:textSize="18sp" />
</RelativeLayout>
</FrameLayout>

</RelativeLayout>
custom_text_view.xml
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>

<TextView
android:id="@+id/popleft"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/popup_side"
android:gravity="center"
android:textStyle="bold"
android:textColor="#3814ed"
android:text="更新位置"
android:textSize="12sp" />

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/popinfo"
>

<TextView
android:id="@+id/textcache"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/popup_middle"
android:gravity="center"
android:textStyle="bold"
android:textColor="@android:color/black"
android:textSize="12sp" />

<TextView
android:id="@+id/popdown"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/popup_down"
android:textColor="@android:color/black"
android:textSize="12sp" />

</LinearLayout>

<TextView
android:id="@+id/popright"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/popup_side"
android:textColor="#3814ed"
android:gravity="center"
android:textStyle="bold"
android:text="更新marker"
android:textSize="12sp" />

</LinearLayout>


2.代码的实现部分

具体的代码部分可以下载源码看



3.AndroidManifest.xml权限的添加

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ncsyeyy.YeyyBaiDuMap"
android:versionCode="1"
android:versionName="1.0">
<!--<uses-sdk android:minSdkVersion="19"/>-->
<!-- 添加屏幕支持 -->
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<!-- 使用网络功能所需权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" >
</uses-permission>

<!-- 使用定位功能所需权限 -->
<!-- SDK离线地图和cache功能需要读写外部存储器 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_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>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" >
</uses-permission>
<uses-permission android:name="android.permission.READ_LOGS" >
</uses-permission>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

<pre style="background-color: rgb(255, 255, 255); font-family: 'Source Code Pro'; font-size: 18pt;"><span style="color:#ff0000;">// Caused by: java.lang.ClassCastException: android.app.Application cannot be cast to com.ncsyeyy.YeyyBaiDuMap.MyApplication
//  at com.ncsyeyy.YeyyBaiDuMap.MainActivity.onCreate(MainActivity.java:67)<span style="font-family: 'Courier New';">产生错误的原因</span></span>
<application android:name=".MyApplication"//注意:一定要写上不然会报错 android:label="@string/app_name" android:icon="@drawable/ic_launcher"> <activity android:name=".MainActivity" android:allowBackup="true" android:theme="@style/AppTheme"
android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <!-- 百度地图服务START --> <service android:name="com.baidu.location.f"
android:enabled="true" android:process=":remote" > </service> <!-- 百度地图服务end --> </application></manifest>


运行结果:



源码地址:
http://download.csdn.net/detail/csdnyuandaimaxuexi/9048135
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息