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.xmldrawable-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
但是,您自己的答案暗示用于v21
和v24
的ic.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
Cocos2d-x: 安卓打包问题 “ GoogleAPIs:21 不是一个有效的 Android 目标平台 ”