我有一个 Android 应用程序,它使用来自其自己的资源文件夹和来自通过共享用户 ID 链接的包的资源文件夹的可绘制对象。
每次应用程序运行时,我都面临着可绘制对象的像素密度降低(导致插值伪影)只有自己的资源**,而那些链接的***看起来正常。
大约第 10 次执行该应用程序时,它崩溃了*。 然后第一次加载以原始密度显示所有图像。
该应用基于 SDK 1.6 版,没有特定的密度相关资源,这意味着严格针对 320 x 480 像素设计。 该问题既不会出现在显示尺寸与上述匹配的设备上,也不会出现在显示尺寸匹配且显示尺寸更大的模拟器中。在最后一种情况下,图像会正确缩放以适合。
我不知道从哪里(在代码中)开始寻找该错误的原因。
提前感谢您的任何提示!
编辑:
我还应该提到,在重新加载应用程序时,几个对话框(例如 ProgressDialog
)的绘制尺寸是以前的一半。
* 应用程序崩溃时的日志输出:
ERROR/AndroidRuntime(23632): FATAL EXCEPTION: main
ERROR/AndroidRuntime(23632): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.Paketliste}: android.view.InflateException: Binary XML file line #20: Error inflating class <unknown>
ERROR/AndroidRuntime(23632): Caused by: android.view.InflateException: Binary XML file line #20: Error inflating class <unknown>
ERROR/AndroidRuntime(23632): Caused by: java.lang.reflect.InvocationTargetException
ERROR/AndroidRuntime(23632): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/buttons.png from drawable resource ID #0x7f020016
ERROR/AndroidRuntime(23632): Caused by: java.lang.IllegalArgumentException: width and height must be > 0
WARN/ActivityManager(2461): Force finishing activity com.myapp/.Paketliste
* * 这些行加载的图像如上所示:
ImageView imageView_IconOfAnotherPackage = (ImageView) row
.findViewById(R.id.paketliste_installed);
imageView_IconOfAnotherPackage
.setImageResource(R.drawable.default_icon);
* * * 加载一张没有问题的图片:
imageView_IconOfAnotherPackage
.setImageDrawable(this
.getPackageManager()
.getResourcesForApplication('com.myotherapp')
.getDrawable(0x7f020001)
);
最佳答案
我在这里找到了一个帖子,其中一个人可能遇到了同样的问题(并找到了解决方案):
http://adrianvintu.com/blogengine/post/Force-Locale-on-Android.aspx
(通过这个答案:Set-up the application Language in Android Preferences)
关于android - 每次程序启动时可绘制对象的显示分辨率密度减半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5552780/