【问题标题】:Switching Image of Imageview using onClickListener使用 onClickListener 切换 Imageview 的图像
【发布时间】:2017-07-28 16:06:58
【问题描述】:

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

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

但是检查的答案不起作用,因为用于切换的布尔变量需要声明为final。一旦声明为 final,我就无法更改变量的值。

【问题讨论】:

  • 可以全局声明变量
  • 在 OnCreate() 之前声明该布尔值。如果您不想制作最终变量,则必须在父级中声明该变量。
  • 感谢 Arpan Sharma 和 jigar savaliya 宣布 boolean global 对我有用。

标签: android


【解决方案1】:
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;
        }

    }
});

【讨论】:

  • 感谢它为我工作。获得 15 个声望后,我会为答案投票。
【解决方案2】:

你可以使用 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"/>

【讨论】:

  • 这是一个非常有趣的答案,请记住。
  • 我正在使用 JaskaranSingh 提供的代码所以我将她标记为已接受。顺便再次感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
相关资源
最近更新 更多