【发布时间】:2017-04-28 08:15:03
【问题描述】:
我想自定义一个可绘制对象,例如 /drawable/image.png
仅适用于 API 19 到 21。对于以后的 API(包括 22 之后。我希望 drawable 有所不同)。我需要创建目录吗 可绘制-v19, 可绘制-v20, 可绘制-v21, drawable-v22(对于其他人?) ?我有点不清楚它是如何工作的......
【问题讨论】:
标签: android customization drawable
我想自定义一个可绘制对象,例如 /drawable/image.png
仅适用于 API 19 到 21。对于以后的 API(包括 22 之后。我希望 drawable 有所不同)。我需要创建目录吗 可绘制-v19, 可绘制-v20, 可绘制-v21, drawable-v22(对于其他人?) ?我有点不清楚它是如何工作的......
【问题讨论】:
标签: android customization drawable
您应该只需要为设置不同资源的版本创建目录。所以你的资源目录看起来像:
res/
drawable/ --> SDK version below 19
image.png
drawable-v19/ --> SDK version between 19 and 21 (including both)
image.png
drawable-v22/ --> SDK version 22 and greater
image.png
编辑: 似乎是这样工作的。我已经为 sdk 19 和 22 建立了一个带有 strings.xml 的小项目,启动了两个模拟器,分别是 sdk 21 和 25。SDK 21 显示了 v19 字符串中的字符串,而 SDK 25 显示了 v22 字符串中的字符串。这是一张带有结果的图片:
希望对您有所帮助。 (无法使用低于 19 的 sdk 对其进行测试,但这应该从默认文件中获取值,因为没有适用的限定符。)
【讨论】:
v4 for API level 4 (devices with Android 1.6 or higher)),因此您应该只定义“拐点”类别的文件夹。还没有机会测试它,但会尝试一下。
您可以为每个版本的每个自定义图像创建可绘制文件夹,例如 drawable-v19、drawable-v20、drawable-v21、drawable-v22。如果应用程序在这些设备之一上运行,它会从这些匹配版本的自定义文件夹中选择,否则会退回到通用的可绘制文件夹。
【讨论】: