Android Studio 0.3.7
您好,
我创建了2个按钮png并使用draw9patch修补。 按钮将指示按钮是按下还是未按下。
我的值目录
中有以下buttons_colours.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/rd_btn_press"/> <!-- pressed -->
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/rd_btn"/> <!-- unpressed -->
<!-- Default -->
<item android:drawable="@drawable/rd_btn"/>
</selector>
在我的按钮布局中,我有这个:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"
android:id="@+id/button"
android:layout_gravity="center_horizontal"
android:background="@drawable/rd_btn"/>
问题1:我在buttons_colours.xml中找到element selector must be declared
问题2:不确定这是否与问题1有关,但按下时按钮永远不会更改为我的rd_btn_press状态。
非常感谢任何建议,
答案 0 :(得分:1)
您为按钮设置了错误的背景。将@drawable/rd_btn
替换为`buttons_colours
:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start"
android:id="@+id/button"
android:layout_gravity="center_horizontal"
android:background="@drawable/buttons_colours"/>
另外,我不知道为什么选择器中的项目中有两种状态。这是一个工作选择器的例子:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/rd_btn_press"
android:state_pressed="true" />
<item android:drawable="@drawable/rd_btn"
android:state_focused="true" />
<item android:drawable="@drawable/rd_btn" />
</selector>