Android - 在点击按钮时更改两个图像之间的ImageView并重新点击

时间:2015-09-06 06:04:40

标签: android android-imageview

所以我有一个具有某种图像资源的ImageView让我们说image1而当我点击图像时我将其更改为另一个名为image2的图像资源,我想要的是能够将其更改回image1等等。我尝试的是以下内容,它不起作用。

public void methodName(){
        final ImageView imageNo1 = (ImageView) findViewById(R.id.imageID);
        Drawable seatDrawable = imageNo1.getDrawable();
        imageNo1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(imageNo1.getDrawable()==getResources().getDrawable(R.drawable.image1)){
                    imageNo1.setImageResource(R.drawable.image2);
                } else {
                    imageNo1.setImageResource(R.drawable.image1);
                }
            }
        });
    }

我还尝试将布尔值currentState设置为false并在点击后在if语句中更改它,但这也没有用。那么我该如何让它发挥作用呢?

这是我使用currentState

的方式
public void methodName(){
        private boolean currentState = false;
        final ImageView imageNo1= (ImageView) findViewById(R.id.imageID);
        imageNo1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(currentState = false){
                    imageNo1.setImageResource(R.drawable.image2);
                    currentState = true;
                } else if(currentState = true) {
                    imageNo1.setImageResource(R.drawable.image1);
                }
            }
        });
    }

解决方案:感谢dhaval为setTag和getTag提供解决方案

2 个答案:

答案 0 :(得分:2)

我试过这种方式并且工作正常:

public void methodName(){
    imgView = (ImageView) findViewById(R.id.imgView);
    imgView.setTag(1);
    imgView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            if(imgView.getTag() == 1){
                imgView.setImageResource(R.drawable.abc_btn_rating_star_off_mtrl_alpha);
                imgView.setTag(2);
            }else{
                imgView.setImageResource(R.drawable.abc_btn_rating_star_on_mtrl_alpha);
                imgView.setTag(1);
            }
        }
    });
}

答案 1 :(得分:1)

仅在代码中使用///// >

public class MainActivity extends AppCompatActivity {
    int a=0;

    public void Here(View view){

    if(a==0)
    {
        ImageView image1=(ImageView) findViewById(R.id.imageView);
        image1.setImageResource(R.drawable.female);
        a=1;
    }
    else
    {
        ImageView image2=(ImageView) findViewById(R.id.imageView);
        image2.setImageResource(R.drawable.male);
        a=0;
    }

    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}