DRAWABLE-V21 中的 Android drawble-xhdpi、drawable-xxhdpi、drawable-xxxhdpi 子文件夹也适用于 DRAWABLE-V23?

Posted

技术标签:

【中文标题】DRAWABLE-V21 中的 Android drawble-xhdpi、drawable-xxhdpi、drawable-xxxhdpi 子文件夹也适用于 DRAWABLE-V23?【英文标题】:Android drawble-xhdpi, drawable-xxhdpi, drawable-xxxhdpi subfolders inside DRAWABLE-V21 also for 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

我怎样才能做到这一点?

【问题讨论】:

【参考方案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

【讨论】:

谢谢,您的回答正是我想要的。我需要编辑我的答案,因为它不完整。有了我的回答,我想我可以拥有更少的资源。

以上是关于DRAWABLE-V21 中的 Android drawble-xhdpi、drawable-xxhdpi、drawable-xxxhdpi 子文件夹也适用于 DRAWABLE-V23?的主要内容,如果未能解决你的问题,请参考以下文章

android.content.res.Resources$NotFoundException:文件 res/drawable-v21/launch_background.xml

较新版本的 Android Studio 和只有两个可绘制目录 - drawable 和 drawable-v21

Android5.0新特性之——动画效果1涟漪效果

Cocos2d-x: 安卓打包问题 “ GoogleAPIs:21 不是一个有效的 Android 目标平台 ”

以编程方式滚动到 Android ListView 中的特定位置

第12天 android studio