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

来源:互联网 发布:数据库通配符 编辑:程序博客网 时间:2024/04/30 11:45

研究了两天的百度地图,下面是我的博客,大家一起学习啊

第一步:申请百度地图的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


0 0
原创粉丝点击