我正在尝试非常简单地样式化一个Button
。 我只想在没有被按下时使它变蓝色并带有文本,在被点击时让它变成白色并带有蓝色文本。
我尝试使用样式和选择器来实现这一点。
在我的布局中,我有这个Button
:
<Button
android:id="@+id/button1"
style="@style/MyButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/login" />
在
res/values/styles
中,我有这个styles.xml
文件:<style name="MyButton">
<item name="android:background">@drawable/btn_background</item>
<item name="android:textColor">@drawable/btn_textcolor</item>
</style>
当然,还有两个选择器,在
res/drawable
中,btn_background.xml
:<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="@color/white" />
<item android:color="@color/SapphireBlue" />
</selector>
以及btn_textcolor.xml
:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:color="@color/SapphireBlue" />
<item android:color="@color/white" />
</selector>
我现在无论运行应用程序还是打开布局编辑器都会出现以下错误:
我理解这个消息,但我没有一个drawable,只是一个简单的平面按钮。<item>标记需要一个“drawable”属性
那么我该如何创建这样一个简单的按钮? 更新: 根据这篇文章,它应该可以工作。
shape
可绘制对象,只指定solid
属性,设置为目标颜色。http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape - user