Android选错了资源文件夹

时间:2010-09-23 12:00:51

标签: android layout resources

我的资源文件夹似乎有些问题 - Android选择了错误的资源文件夹。

在设计模式下,在布局编辑器中,我可以选择不同的设备,以不同的屏幕分辨率查看我的设计。我指定了三种不同的设备,每种设备对应一种分辨率。 mdpi和hdpi显示来自右侧文件夹的资源,但是当用ldpi选择我的设备时,它会显示来自mdpi的资源 - 这是错误的。

ldpi设备的设置为:

小,不长,肖像,低密度,手指,柔和,无键,轨迹球,320x240

当我运行程序时,我得到一个InflateException,因为它在我的布局中无法为我的imageview找到合适的资源:android:src =“@ drawable / psbgtop”

这是我的资源文件夹:

  • RES /抽拉-HDPI /的icon.png
  • RES /抽拉-HDPI / psbgbottom.png
  • RES /抽拉-HDPI / psbgtop.png
  • RES /抽拉-LDPI /的icon.png
  • RES /抽拉-LDPI / psbgbottom.png
  • RES /抽拉-LDPI / psbgtop.png
  • RES /抽拉-MDPI /的icon.png
  • RES /抽拉-MDPI / psbgbottom.png
  • RES /抽拉-MDPI / psbgtop.png
  • RES /布局/ main.xml中
  • RES /布局/ settings.xml中
  • RES /布局/ settings2.xml
  • RES /布局/ synchronize.xml
  • RES /值/ strings.xml中
  • RES / XML /的preferences.xml

有谁可以弄明白,为什么我的文件夹结构似乎错了?

祝你好运 弗雷德里克

3 个答案:

答案 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