Tag: 安卓

Android的draw9patch抛出NoClassDefFoundError

我今天升级到Android SDK工具r8,似乎无法运行draw9patch工具。 我收到以下错误: 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 我正在跑雪豹,还有jre(或jdk?)1.6。 任何想法如何得到这个工作? 谢谢!

Android:我如何将地图视图的缩放级别设置为我当前位置周围1公里的半径?

我想将地图视图放大到1公里半径,但不知道如何? 该文件说,缩放级别1将地球赤道映射到256像素。 那么如何计算我需要设置的缩放级别,以便地图视图显示半径为1KM的区域? 更新: 阅读了一些博客文章后,我写了下面的代码: private int calculateZoomLevel() { double equatorLength = 6378140; // in meters double widthInPixels = screenWidth; double metersPerPixel = equatorLength / 256; int zoomLevel = 1; while ((metersPerPixel * widthInPixels) > 2000) { metersPerPixel /= 2; ++zoomLevel; } Log.i("ADNAN", "zoom level = "+zoomLevel); return zoomLevel; } 这个想法是,我首先计算缩放级别1中的每像素的米数 ,根据谷歌显示,使用256像素的赤道地球。 现在,随后的每个缩放级别都会放大2个级别,所以每个缩放级别的每个像素只有一个米。 我这样做,直到我有一个缩放级别米每像素乘以屏幕宽度给我less于2000年,即2公里。 但我不认为我得到的缩放级别是显示半径2公里的地图。 […]

我怎样才能find在Android中的两个date之间的年数?

我正在试图确定从某个特定date开始的年龄。 有谁知道一个干净的方式来做到这一点在Android? 我显然可以使用Java API,但直接使用的Java API非常薄弱,我希望Android能够帮助我。 编辑:在Android中使用Joda时间的多个build议令我有点担心,由于Android Java – 乔达date缓慢和相关的问题。 另外,拉一个没有与平台的东西这种大小的图书馆可能是矫枉过正。

android:如何从非activity / service类使用getApplication和getApplicationContext

我正在使用Android上的扩展应用程序类来在整个应用程序中共享我的数据。 我可以从我所有的活动中使用getApplication()方法。 但是,我创build了一些自定义的帮助类。 例如,不从任何活动/服务类inheritance的XMLHelper类。 这里getApplication()方法不可用。 我怎样才能解决这个问题,最好的devise方法是什么?

Android的EditText提示

我已经为EditText设置了提示,目前提示可见性已经消失。 当用户开始input时,我想删除提示文本,当光标在EditText可见时,而不是在用户开始input时。 我怎样才能做到这一点? <EditText android:paddingLeft="10dp" android:background="@drawable/edittextbg" android:layout_marginLeft="4dp" android:layout_marginTop="7dp" android:gravity="left" android:id="@+id/Photo_Comments" android:layout_width="150dip" android:maxLines="1" android:hint="Write Caption" android:maxLength="50" android:singleLine="true" android:maxWidth="100dip" android:layout_height="wrap_content"/>

解释Span标志的含义,如SPAN_EXCLUSIVE_EXCLUSIVE

有人可以清楚地解释什么样的SPAN_EXCLUSIVE_EXCLUSIVE和SPAN_MARK_MARK这些跨度标志是什么意思,什么时候使用什么标志? 我不明白的官方文件,当它说: SPAN_EXCLUSIVE_EXCLUSIVEtypes的SPAN_EXCLUSIVE_EXCLUSIVE不会扩展为包含在起点或终点处插入的文本。 “扩展到包含”是指插入跨度后所做的编辑? 这是否意味着这些标志不会影响具有不可变文本的Spannables?

IntelliJ的IDEA – 不能build立任何东西,总是得到“包R不存在”

我正在尝试使用IntelliJ IDEA与一个发誓的同事一起工作的Android应用程序,但我无法构build任何他发送给我的Android项目,因为每当我尝试构build时,我得到一个错误,说package R does not exist 。 我一直在尝试我能想到的一切。 示例和其他要注意的事项是: 确保我有一个指向我的Android SDKs文件夹根目录的local.properties文件。 摆弄项目结构对话框中的各种设置(我不会全部列出)。 我正在做的项目有两个图书馆项目也使用R类,他们工作正常。 IDE中的intellisense认可R类,并提出我期望的东西。 任何帮助将不胜感激。 我觉得我缺less一些基本的东西。

从XML资源创buildhashmap / map

我正在做一个应用程序,其中一个Web服务从Web服务(即BEL,FRA,SWE)获取一堆代码。 在运行期间,我想把这些代码翻译成它们相应的名字以显示给用户(即比利时,法国,瑞典)。 可以有很多这些代码,所以我想知道是否有任何适当的方式来存储(代码,名称)条目作为某种地图在Android的XML资源,所以我可以快速获取名称给定的代码? 这是关于速度的一切,因为地图可以有几百个条目。

如何使位图压缩而不改变位图大小?

我使用这种方法来压缩图像 if(bitmapObject.compress(Bitmap.CompressFormat.PNG, 100, fOut)) { … } 但是我得到的图像在压缩动作之前是很小的(在维度上)。 我的应用程序需要通过networking发送压缩图像 – 所以我想发送尽可能less的数据,但我必须保持图像的原始大小。 有一些其他的方法来保持一些压缩的原始位图维度?

Android SharedPreferences最佳实践

在我build立的应用程序中,我们相当依赖SharedPreferences,这让我想到了访问SharedPreferences的最佳实践。 例如许多人说通过这个调用访问它的适当方式: PreferenceManager.getDefaultSharedPreferences(Context context) 但是,这似乎是危险的。 如果您有一个依赖于SharedPreferences的大型应用程序,那么您可以进行密钥复制,特别是在使用某些依赖于SharedPreferences的第三方库的情况下。 在我看来,更好的使用方法是: Context.getSharedPreferences(String name, int mode) 这样,如果您有一个严重依赖于SharedPreferences的类,则可以创build仅由您的类使用的首选项文件。 您可以使用该类的完全限定名,以确保该文件很可能不会被其他人复制。 也基于这个SO问题: 应该访问SharedPreferencesclosuresUI线程? ,似乎访问SharedPreferences应该离开UI线程是有道理的。 Android开发人员在应用程序中使用SharedPreferences时应该注意哪些其他最佳实践?