Android 如何将attr放在定制的可绘制文件中?
我在尝试将attr放入自定义可绘制xml时遇到了一个问题 以下是我的布局示例: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"/>
<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"/>