如何识别可绘制的 xml 文件?

Posted

技术标签:

【中文标题】如何识别可绘制的 xml 文件?【英文标题】:How Drawable xml files are identified ? 【发布时间】:2012-03-30 01:48:42 【问题描述】:

当我将以下 xml 文件放入“drawable”文件夹时,drawable 会自动编译为“GradientDrawable”,我可以在布局中使用它

但在 xml 文件中,我没有指定它的数据类型“GradientDrawable”。

这个 xml 解析和“自动”类型检测发生在哪里?在编译期间还是在运行时?

如果我写了一个自定义的drawable,我可以用类似的方式将它的参数指定为xml标记吗?

我找到了Drawable.inflate 方法,但找不到使用示例

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:a="http://schemas.android.com/apk/res/android" >
    <gradient
        a:angle="270"
        a:endColor="#992f2f"
        a:startColor="#ef4444" />
    <stroke
        a:
        a:color="#992f2f" />
    <corners a:radius="6dp" />
    <padding
        a:bottom="6dp"
        a:left="6dp"
        a:right="6dp"
        a:top="6dp" />
</shape>

【问题讨论】:

【参考方案1】:

在 Java 中你应该使用 R.drawable.ExamplePicture 在 xml ="@drawable/ExamplePicture" 每个drawable-xx文件夹上的图片文件

【讨论】:

以上是关于如何识别可绘制的 xml 文件?的主要内容,如果未能解决你的问题,请参考以下文章

Android Button 背景无法识别/使用可绘制对象

如何在 Android 中从 NDK 访问可绘制文件

原因:org.xmlpull.v1.XmlPullParserException:二进制 XML 文件第 14 行:无效的可绘制标签渐变

添加可绘制文件后Android按钮边框保持默认

如何将可绘制资源中的图像保存到 SD 卡?

Android:如何制作一个可绘制的选择器