Android 如何将attr放在定制的可绘制文件中?

Android 如何将attr放在定制的可绘制文件中?,android,xml,styles,drawable,attr,Android,Xml,Styles,Drawable,Attr,我在尝试将attr放入自定义可绘制xml时遇到了一个问题 以下是我的布局示例: <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/my_custom_btn"/>

我在尝试将attr放入自定义可绘制xml时遇到了一个问题

以下是我的布局示例:

        <Button
            android:id="@+id/btn"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/my_custom_btn"/>

然后我的自定义绘图“my\u custom\u btn”,我想用attr\u my\u custom\u颜色指定其颜色:

<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true"
            android:drawable="?attr/attr_my_custom_color" /> <!-- pressed -->
    </selector>

我的attr.xml文件:

<resources>
     <attr name="attr_my_custom_color" format="color"/>
</resources>

以及我的style.xml文件,我的应用程序正在使用此主题(在我的清单中):


@颜色/原色

当我在我的布局中测试attr时,它工作得很好,但是当我把它放在我的定制绘图工具中时,它就不工作了

它编译得很好,但当我启动应用程序时,它会显示以下错误:

由以下原因引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#4:tag需要一个“drawable”属性或定义可绘制的子标记

您能帮我在自定义可绘制文件中指定属性吗?

您必须将背景更改为可绘制文件
you have to change background to drawable


<Button
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawable ="@drawable/my_custom_btn"/>

它不再崩溃,但也不适用于
。您的minSdkVersion是什么?如果我应用标准颜色,它也不适用该颜色
请更改minSdkVersion 21,然后检查。在那之后,我会给你正确的答案,我只能使用第19版。我不能在21号登机。您的正确答案是否意味着使用MinsdkVersion21?
you have to change background to drawable


<Button
        android:id="@+id/btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:drawable ="@drawable/my_custom_btn"/>