【问题标题】:Android drawble-xhdpi, drawable-xxhdpi, drawable-xxxhdpi subfolders inside DRAWABLE-V21 also for DRAWABLE-V23?DRAWABLE-V21 中的 Android drawble-xhdpi、drawable-xxhdpi、drawable-xxxhdpi 子文件夹也适用于 DRAWABLE-V23?
【发布时间】:2021-06-03 10:14:39
【问题描述】:

我知道在 drawable-v21 中添加子文件夹是不可能的。 但是我将如何完成 android 在 drawable-v21 中获取不同大小的资源。 例如: drawable-xhdpi、drawable-xxhdpi、drawable-xxxhdpi。

我需要这种行为 - (ic.png 应该是同一张图片,像素大小不同)

  • drawable-v21

    • 可绘制-xhdpi

      ic.png

    • drawable-xxhdpi

      ic.png

    • drawable-xxxhdpi

      ic.png

  • drawable-v23

    • 可绘制-xhdpi

      ic.png

    • drawable-xxhdpi

      ic.png

    • drawable-xxxhdpi

      ic.png

我怎样才能做到这一点?

【问题讨论】:

    标签: android resources drawable


    【解决方案1】:

    更新:

    我意识到我可以通过这种方式解决我的问题:

    • 可绘制

      • ic_vector.xml
      • ic.png (1.0x)
    • drawable-v21

      • outterDrawable.xml
    • drawable-v23

      • outterDrawable.xml
    • 可绘制-xhdpi

      • ic.png (1.0x)
    • drawable-xxhdpi

      • ic.png (2.0x)
    • drawable-xxxhdpi

      • ic.png (3.0x)

    outterDrawable (drawable-v21) 看起来像这样:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <bitmap android:src="@drawable/ic" android:gravity="center" />
        </item>
    </layer-list>
    

    outterDrawable (drawable-v23) 看起来像这样:

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:src="@drawable/ic_vector" android:gravity="center"/>
    </layer-list>
    

    让我知道是否有不同的解决方案。

    【讨论】:

      【解决方案2】:

      资源限定符可以相互组合使用(尽管在组合它们时必须遵循特定的顺序)。此处列出了所有限定符及其优先顺序:https://developer.android.com/guide/topics/resources/providing-resources#AlternativeResources

      因此,您可以使用如下目录结构:

      res/
          drawable-xhdpi-v21/
              ic.png
          drawable-xhdpi-v24/
              ic.png
          drawable-xxhdpi-v21/
              ic.png
          drawable-xxhdpi-v24/
              ic.png
      

      但是,您自己的答案暗示用于v21v24ic.png 文件之间没有区别。在这种情况下,根本不需要指定版本:

      res/
          drawable-xhdpi/
              ic.png
          drawable-xxhdpi/
              ic.png
      

      【讨论】:

      • 谢谢,您的回答正是我想要的。我需要编辑我的答案,因为它不完整。有了我的回答,我想我可以拥有更少的资源。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-06
      • 1970-01-01
      相关资源
      最近更新 更多