在android中更改图像按钮的背景图像?

时间:2014-11-01 13:14:45

标签: android xml image

有imageButton的图像背景。 它在取消选择时具有默认图像背景。 当单击imageButton时,其背景图像会发生变化并被选中。 现在我需要的是,当用户再次点击ImageButton时,它的背景图像应该随时改变,取消选择时间默认图像。

这是我的活动图片按钮代码: -

    img1 = (ImageButton) findViewById(R.id.imageButton1);
    //img1.setImageResource(R.drawable.image1);
    img1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                //start();
                //img1.setImageResource(R.drawable.badmiton_blur);
            img1.setImageResource(R.drawable.image1);

        }
    });

这是我的xml代码: -

<?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android" >

<item 
   android:state_selected="true"
    android:drawable="@drawable/badmintion140"
    />
<item
    android:state_selected="false"
    android:drawable="@drawable/badmiton_blur"
    />
</selector>

2 个答案:

答案 0 :(得分:2)

添加一个布尔变量

boolean isClicked;

并像这样更改你的代码。

boolean isClicked;
img1.setOnClickListener(new OnClickListener() {

   @Override
   public void onClick(View v) {
            isClicked=!isClicked;
            if (isClicked) {
                img1.setImageResource(R.drawable.image1);
            }else {
                img1.setImageResource(R.drawable.defaut);
            }
        }
    });

答案 1 :(得分:1)

请尝试此代码。

 boolean defaultImage=true;


img1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        if (isClicked) {
            defaultImage=false;
            img1.setImageResource(R.drawable.image1);
        }
         else
         {
           defaultImage=true;
            img1.setImageResource(R.drawable.defaut);
        }
    }
});