参考了很多网上修改地图位置图标的文章,尝试了几天也没搞定。没法还是回过头仔细看官方库文档,发现网上都是用的百度api库都是以前的,我用现在最新的百度api库,编都编译不过,修改编译过了,但定位位置的图标还是没有改变。仔细看官方文档,终于有了发现,原来从库2.0.0版本开始,SDK不支持直接继承Overlay , 用户可通过继承ItemizedOverlay来添加覆盖物。原来这样,我按官方修改自己代码就OK了。
开发环境:
开发平台:adt-bundle-windows-x86-20130514
编译器:jdk-7u17-windows-i586.exe
目标:实现百度地图SDK定位,修改定位位置图标
转载请注明出处 http://blog.csdn.net/u010216127
效果如下:默认定位图标:
修改后的定位图标
现在的代码都写得很简单,基本上就是入门之类的,都只有一个窗口,单个调试实现功能。以后再把这些窗口组合在一起,实现一个具体的项目。单窗口程序一般只需编写如下三个文件:项目总配置文件AndroidMainfest.xml、窗口布局文件activity_main.xml、主屏幕MainActivity.java。这里都是用的默认名,可以根据自己工程修改。开始依次实现上面3个文件。
一、编写代码
1.项目总配置文件AndroidMainfest.xml
该文件是每个Android程序的必须文件。主要记录应用中所使用的各种组件,指定应用程序中使用到服务的权限。主窗口也是在该文件指定,代码如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mapsbase"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="10" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity android:name=".MapDemo"
android:screenOrientation="sensor"
android:configChanges="orientation|keyboardHidden">
</activity>
<activity
android:name="com.example.mapsbase.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote">
</service>
</application>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
<uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
<permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
</permission>
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" >
</uses-permission>
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
&l