【发布时间】:2013-09-20 09:53:55
【问题描述】:
我正在尝试非常简单地设置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' 属性
我了解该消息,但我没有有可绘制对象,它是一个简单的平面按钮吗?
我怎样才能创建这样一个简单的按钮?
更新根据this post,应该可以了。
【问题讨论】:
-
创建一个基本的
shapedrawable,只指定solid属性,设置为您的目标颜色。 developer.android.com/guide/topics/resources/… -
@Luksprog 好的,它现在可以工作了,但我们不都同意这是 疯狂 我必须创建 5 个 XML 文件只是为了更改按钮的“活动”颜色和背景?一定有更好的办法......
-
看看 Dynamo 的回答。