【问题标题】:Using Qualifiers to Assets Folder对资产文件夹使用限定符
【发布时间】:2012-10-10 08:46:42
【问题描述】:

目前我们有一个项目,我们必须将它们存储在 assets 文件夹中,而不是使用 res/drawable 文件夹来存储图像。然而,我们仍然希望根据设备的分辨率/密度等利用 Android 自动选择图像(通过限定符,例如 drawable-hdpi、drawable-mdpi 等)。

我的问题是,你知道是否可以在 assets 文件夹中使用限定符并使用 Android 机制来选择最佳图像资源?如果没有,您知道我可以使用其他解决方法吗?

谢谢。

【问题讨论】:

  • 由于资产文件夹不是为 Android 预定义的,我认为如果没有您的进一步努力,这将无法正常工作。最好的选择是使用已经提供的(使用 res/drawable 文件夹)

标签: android


【解决方案1】:

限定符仅适用于资源文件夹。但是,您可以使用限定符从资产中获取要使用的文件名。

例如,可以在 values-ldpi、values-hdpi 等中有不同的 strings.xml。这些 strings.xml 中的每一个都包含要使用的文件的名称。

值-ldpi/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="logo_file">logo-ldpi.png</string>
</resources>

值-mdpi/strings.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="logo_file">logo-mdpi.png</string>
</resources>

然后您可以使用 getResources().getString(R.string.logo_file) 获取 logo_file 的名称,并使用它从资产中检索。

【讨论】:

    【解决方案2】:

    恐怕其他方法相当乏味。您可以使用Configuration 类来查询方向、屏幕密度等。了解配置详细信息后,您可以自行选择正确的资源。

    【讨论】:

      猜你喜欢
      • 2013-05-02
      • 2020-06-08
      • 2013-10-29
      • 1970-01-01
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多