【问题标题】:Android picks wrong resource folderAndroid 选择了错误的资源文件夹
【发布时间】:2010-09-23 12:00:51
【问题描述】:

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

在设计模式下,在布局编辑器中,我可以选择不同的设备,以不同的屏幕分辨率查看我的设计。我已经指定了三种不同的设备,每种分辨率一个。 MDPI和HDPI显示了右侧文件夹中的资源,但在使用LDPI选择设备时,它会显示MDPI的资源 - 这是错误的。

ldpi 设备的设置为:

小、不长、人像、低密度、手指、柔和、无按键、轨迹球、320x240

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

这是我的 res 文件夹:

  • 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

谁能弄清楚,为什么我的文件夹结构似乎是错误的?

最好的问候 弗雷德里克

【问题讨论】:

  • 提供 logcat 输出也很有用,其中包含 java 异常和与资源查找相关的任何日志。

标签: android layout resources


【解决方案1】:

您可以使用“aapt dump restable”查看 .apk 中的实际资源。使用密度资源时不需要有基础资源。这里没有足够的信息来提供更多帮助,但我的猜测是您的代码和资源不同步。您是否尝试过完全干净的构建?

【讨论】:

  • 嗨,很抱歉我的问题缺少一些信息。我正在针对 Android 2.0 SDK 构建,我的清单文件将 minSDK 描述为“”。
  • 我已经在这里倾倒了资源:pastebin.com/TzXWxaYr。收到您的来信,我将不胜感激。我想我可以猜到这些行的含义,但我找不到有关此命令的任何文档。
【解决方案2】:

最好有一个“基础”文件夹(在您的特定情况下称为“drawable”)并在其中放置一些“默认”资源,这样如果 Android 没有找到正确的资源,它就可以恢复到某些东西。但总的来说,它确实看起来很奇怪,为什么没有选择特定于 dpi 的资源。

【讨论】:

  • 是的,我知道这会起作用,但话又说回来,这不是我想要的。几乎每个教程都只声明三个 dpi 文件夹是必需的。
【解决方案3】:

我认为您收到运行时错误的原因是您正在针对 Android SDK 1.5 测试/编译它。

如果您的目标是兼容 1.5,您还需要一个默认的“drawable”文件夹,从官方文档开始,ldpi、mdpi、hdpi 和 nodpi 模式是在 API 级别 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 2014-09-03
    • 2010-09-24
    • 1970-01-01
    • 2023-03-16
    相关资源
    最近更新 更多