如何在每次点击时更改按钮的图像?

时间:2012-05-06 11:53:15

标签: android button imagebutton xml-drawable

我在button中创建了layout。在Drawable文件夹中,我创建了一个名为XML file的{​​{1}}。 btn01_state已分配给通过“btn01_state.xml”创建的button

现在,android:background=@drawable/btn01_statebutton上有一个默认image img1.when click,图片1更改为img2,一旦我释放点击的鼠标按钮,image2再次改为img1。

我想要做的是,用evey点击更改按钮的图像。

最初是一个例子 btn01有img01

如果按下btn01 ==>将img of btn01设置为img02并保持img02直到再次按下btn01。现在,btn01上有img02。

按下btn01时,将img01设置为btn01。

我希望这更能澄清我想要做的事情。

btn_selector

button

main.xml中

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/android_blue"
      android:state_pressed="true" />
<item android:drawable="@drawable/ic_launcher"
      android:state_focused="true" />
<item android:drawable="@drawable/ic_launcher" />

3 个答案:

答案 0 :(得分:18)

您可以在代码中轻松完成。

boolean isPressed = false;
button.setOnClickListener(buttonListener);

OnClickListener buttonListener = new OnClickListener() {
    @Override
    public void onClick(View v) {
        if(isPressed)
           button.setBackgroundResource(R.drawable.icon1);
        else
           button.setBackgroundResource(R.drawable.icon2);

        isPressed = !isPressed;
   }
};

答案 1 :(得分:1)

简单方法

btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
    btn.setBackgroundDrawable(getResources().getDrawable(R.drawable.locationbutton_on));
                }
        }); 

答案 2 :(得分:0)

也许在代码中。在按钮上放置一个监听器,当单击该按钮时,背景会改变。