每次单击ImageButton以更改为其他图像

时间:2016-04-19 22:15:24

标签: java android xml

我有ImageButtonfalse显示为gray image,而true显示为green image。如果我使用state_pressed="true"state_pressed="false"功能正常工作,但我需要按住left-click button按钮才能更改为true

P.S:我确实认为我使用了错误的state,但我尝试了其他的但是没有用。

我的问题是:如何只需点击image上的一次trueImageButton?< / p>

代码:

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/green_clock" android:state_selected= "true"> </item> <item android:drawable="@drawable/grey_clock" android:state_selected="false"> </item> </selector>

Java文件:

public void onClickClock(View v)
{
    ImageButton clockBtn = (ImageButton)findViewById(R.id.Clock);
    clockBtn.setImageResource(R.drawable.clock);
}

activity.xml:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/Clock"
    android:src="@drawable/clock"
    android:background="@android:color/transparent"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginTop="73dp"
    android:onClick="onClickClock" />

谢谢!

1 个答案:

答案 0 :(得分:0)

添加setSelected()

public void onClickClock(View v) {
    ImageButton clockBtn = (ImageButton)findViewById(R.id.Clock);
    clockBtn.setSelected(!clockBtn.isSelected());
}