首页 文章

Android选错了资源文件夹

提问于
浏览
2

我的资源文件夹似乎有些问题 - 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 回答

  • 1

    您可以使用“aapt dump restable”来查看.apk中的实际资源 . 使用密度资源时无需拥有基本资源 . 这里没有足够的信息来帮助更多,但我的猜测只是你的代码和资源不同步 . 你试过做一个完整的清洁构建吗?

  • 0

    最好有一个“基础”文件夹(在你的特定情况下称为“drawable”)并在那里放置一些“默认”资源,以便Android有一些东西可以恢复,如果找不到合适的资源 . 但总的来说,它看起来确实很奇怪,为什么没有特定于dpi的资源被选中 .

  • 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.
    

    编辑:如果我'd be you, I' d只需将 drawable-ldpi 文件夹重命名为 drawable 文件夹并将ldpi文件存储在 drawable

相关问题