使用onClickListener切换Imageview的图像

时间:2017-07-28 07:36:14

标签: android

我正在制作一个音乐播放器应用程序,其中有一个播放按钮的图像,一旦点击它切换到pause.png并开始播放歌曲。再次单击该按钮会将图像更改为play.png并暂停声音。这种模式还在继续。

此问题之前已经回答first click change to new image and second click change to old image, android

但是检查后的答案不起作用,因为用于切换的布尔变量需要被声明为final。一旦宣布最终我不能改变变量的值。

2 个答案:

答案 0 :(得分:0)

boolean showingFirst = true;   //Declare globally

image1.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        if(showingFirst){
            image1.setImageResource(R.drawable.img1);
            showingFirst = false;
        }else{
            image1.setImageResource(R.drawable.img2);
            showingFirst = true;
        }

    }
});

答案 1 :(得分:0)

您可以使用ImageView的tag属性以这种方式执行此操作:

iv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(iv.getTag().equals("playing")){
                iv.setImageResource(R.mipmap.play);
                iv.setTag("paused");
            } else {
                iv.setImageResource(R.mipmap.pause);
                iv.setTag("playing");
            }
        }
    });

xml文件中的ImageView声明如下所示:

 <ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:src="@mipmap/pause"
    android:tag="playing"
    android:id="@+id/iv"/>