我想改变,例如btn_star_big_off到btn_star_big_on
每次有人点击按钮时,状态都应该改变。 Toogle会很完美,但我不知道如何将它结合起来。我不知道如何改变按钮的状态。我发现我可以用可绘制的XML文件做到这一点,但我只能访问我导入的图像,但不能访问系统资源?
按钮:
<ImageButton
android:id="@+id/imageButton4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@android:drawable/btn_star_big_off" />
以下是我的可绘制XML的试用版:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button" android:state_pressed="true"/>
<!-- pressed -->
<item android:drawable="@drawable/button"/>
<!-- default -->
</selector>
答案 0 :(得分:3)
您需要使用ToggleButton
1)在你的布局中,实现ToggleButton
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:weightSum="1">
<ToggleButton
android:layout_width=0dp"
android:layout_height="wrap_content"
android:layout_weight=".3"
android:background="@drawable/my_button"
android:text=""
android:textOff=""
android:textOn=""/>
</TableRow>
2)在drawable目录中创建xml布局(此处为my_button.xml)
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:drawable/btn_star_big_on" android:state_pressed="true"/><!-- pressed -->
<item android:drawable="@android:drawable/btn_star_big_on" android:state_focused="true"/><!-- focused -->
<item android:drawable="@android:drawable/btn_star_big_on" android:state_checked="true"/>
<item android:drawable="@android:drawable/btn_star_big_off" android:state_checked="false"/>
<item android:drawable="@android:drawable/btn_star_big_off"/> <!-- default -->
</selector>
这里我添加另一个状态,如果你想要一个专注的img