我的资源文件夹似乎有些问题 - Android选择了错误的资源文件夹。
在设计模式下,在布局编辑器中,我可以选择不同的设备,以不同的屏幕分辨率查看我的设计。我指定了三种不同的设备,每种设备对应一种分辨率。 mdpi和hdpi显示来自右侧文件夹的资源,但是当用ldpi选择我的设备时,它会显示来自mdpi的资源 - 这是错误的。
ldpi设备的设置为:
小,不长,肖像,低密度,手指,柔和,无键,轨迹球,320x240
当我运行程序时,我得到一个InflateException,因为它在我的布局中无法为我的imageview找到合适的资源:android:src =“@ drawable / psbgtop”
这是我的资源文件夹:
有谁可以弄明白,为什么我的文件夹结构似乎错了?
祝你好运 弗雷德里克
答案 0 :(得分:1)
您可以使用“aapt dump restable”来查看.apk中的实际资源。使用密度资源时无需拥有基本资源。这里没有足够的信息来帮助更多,但我的猜测只是你的代码和资源不同步。您是否尝试过完全干净的构建?
答案 1 :(得分:0)
最好有一个“基础”文件夹(在你的特定情况下称为“drawable”)并在那里添加一些“默认”资源,以便Android有一些东西可以恢复,如果找不到合适的资源。但总的来说,它看起来确实很奇怪,为什么没有特定于dpi的资源被选中。
答案 2 :(得分:0)
我认为您收到运行时错误的原因是因为您正在针对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
ldpi: Low-density screens; approximately 120dpi.
mdpi: Medium-density (on traditional HVGA) screens; approximately 160dpi.
hdpi: High-density screens; approximately 240dpi.
nodpi: This can be used for bitmap resources that you do not want to be scaled to match the device density.
Added in API Level 4.
编辑:
如果我是你,我只需将drawable-ldpi
文件夹重命名为drawable
文件夹,并将ldpi文件存储在drawable