1.进入到安装目录:C:\WTK25\appdb\DefaultColorPhone。
2.删除in.use,和所有temp_*缓存RMS数据目录后,重启电脑,测试ok。
传统UI开发中,如果背景的大小不一样,一般需要为每种大小都制作一张图片,这在button中尤为明显。当然我们也可以一小块一小块水平重复的画,也可以垂直的话。在android中专门有一种叫nine patch图片(以 9.png结尾)来解决背景大小不一样时,只用一张背景图片。
在android sdk的目录下,tools文件夹里头draw9patch.bat的专门处理9patch的工具。
打开一张png图片,我们可以在png图片最外面的空格画一个像素宽的黑线。图片左边黑线的高度决定了垂直拉升时的扩展区域,也即当垂直拉伸时,只有这个区域的图片会被拉伸。同理图片上边的黑线长度决定了水平拉升时的扩展区域。图片右边的黑线可以不画,默认是指可以压扁到0px,画上黑线后,垂直方向就只可以压扁到右边黑线的高度了。图片下方的情况也一样。
从中我们也可以理解为什么叫 nine patch,相当于把一张png图分成了9个部分,分别为4个角,4条边,以及一个中间区域,4个角是不做拉升的,所以还能一直保持圆角的状态,而2条水平边和垂直边分别只做水平和垂直拉伸,所以不会出现边会被拉粗的情况,只有中间用黑线指定的区域做拉伸。结果是图片不会走样。
一般配置好环境后,使用自带的draw9patch.bat都会遇上dos窗口一闪便消失的情况,使用命令行运行该批处理后,看到跑出以下异常
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/jdesktop/swingworker/SwingWorker at com.android.draw9patch.Application$1.run(Application.java:48) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java:633) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Caused by: java.lang.ClassNotFoundException: org.jdesktop.swingworker.SwingWorker at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 9 more
这是因为Android在更新SDK之后并没有自动将它依赖的SwingWorker的lib文件下载回来,所以需要我们手动下载,然后放到指定位置,应该是在<您的sdk所在目录>/tools/lib/目录下,就OK啦,swing-worker-1.1.jar见附件:
使用谷歌地图,需要进行如下步骤:
1.首先要得到你的debug keystore位置:
打开Eclipse--->Windows--->Preferences--->Android--->Build
查看默认的debug keystore位置,例如:C:\Documents and Settings\(你电脑的名字)\.android\debug.keystore
把这个文件拷贝到C 盘或者其他盘符下面(最简单的办法直接拷贝到Java bin 目录下)
2. keytool 是Java 提供的一个关于鉴权的命令 ,使用这个文件的话,要定位到JAVA 的bin 目录下:
例如 我的电脑该目录为:C:\Program Files\Java\jdk1.6.0_11\bin
在cmd中执行: keytool -list -keystore debug.keystore
输入密码 android 回车
执行结果:
androiddebugkey, 2009-10-04, PrivateKeyEntry,
指纹认证<MD5>: XX:XX:XX:XX:XX:XX:XX:XX.............
这里的XX:XX:XX:XX:XX:XX:XX:XX.............就是你的认证指纹
3.打开http://code.google.com/intl/zh-CN/android/maps-api-signup.html
填入你的认证指纹(MD5)即可获得apiKey了,结果显示如下:
感谢您注册 Android 地图 API 密钥!
您的密钥是:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
4.把密钥添加mapview 组件中 ,就Ok了
5. 另外需要添加网络权限和添加Googlemap类库:
注意下面标红部分:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.mapapi"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/transglas" android:label="@string/app_name">
<activity android:name=".GeoPoint1"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="com.google.android.maps"></uses-library>
</application>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
</manifest>