单击时更改图像按钮系统资源

时间:2013-06-19 12:23:12

标签: java android button click

我想改变,例如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>

1 个答案:

答案 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