我的资源文件夹似乎有些问题 - Android选择了错误的资源文件夹 .
在设计模式下,在布局编辑器中,我可以选择不同的设备,以不同的屏幕分辨率查看我的设计 . 我指定了三种不同的设备,每种设备对应一种分辨率 . mdpi和hdpi显示来自右侧文件夹的资源,但是当用ldpi选择我的设备时,它显示来自mdpi的资源 - 这是错误的 .
The settings for ldpi device is:
小,不长,肖像,低密度,手指,软,无键,轨迹球,320x240
当我运行程序时,我得到一个InflateException,因为它在我的布局中无法为我的imageview找到合适的资源:android:src =“@ drawable / psbgtop”
This is my res folder:
-
res / drawable-hdpi / icon.png
-
res / drawable-hdpi / psbgbottom.png
-
res / drawable-hdpi / psbgtop.png
-
res / drawable-ldpi / icon.png
-
res / drawable-ldpi / psbgbottom.png
-
res / drawable-ldpi / psbgtop.png
-
res / drawable-mdpi / icon.png
-
res / drawable-mdpi / psbgbottom.png
-
res / drawable-mdpi / psbgtop.png
-
res / layout / main.xml
-
res / layout / settings.xml
-
res / layout / settings2.xml
-
res / layout / synchronize.xml
-
res / values / strings.xml
-
res / xml / preferences.xml
任何人都可以弄清楚,为什么我的文件夹结构似乎是错误的?
最好的问候弗雷德里克
3 回答
您可以使用“aapt dump restable”来查看.apk中的实际资源 . 使用密度资源时无需拥有基本资源 . 这里没有足够的信息来帮助更多,但我的猜测只是你的代码和资源不同步 . 你试过做一个完整的清洁构建吗?
最好有一个“基础”文件夹(在你的特定情况下称为“drawable”)并在那里放置一些“默认”资源,以便Android有一些东西可以恢复,如果找不到合适的资源 . 但总的来说,它看起来确实很奇怪,为什么没有特定于dpi的资源被选中 .
我认为你得到运行时错误的原因是因为你正在针对Android SDK 1.5进行测试/编译 .
如果你的目标是1.5兼容性,你还需要一个默认的“drawable”文件夹,截至官方文档,ldpi,mdpi,hdpi和nodpi模式都添加了API Level 4(Android 1.6) .
http://developer.android.com/guide/topics/resources/providing-resources.html
编辑:如果我'd be you, I' d只需将
drawable-ldpi
文件夹重命名为drawable
文件夹并将ldpi文件存储在drawable
中