我正在制作一个音乐播放器应用程序,其中有一个播放按钮的图像,一旦点击它切换到pause.png并开始播放歌曲。再次单击该按钮会将图像更改为play.png并暂停声音。这种模式还在继续。
此问题之前已经回答first click change to new image and second click change to old image, android
但是检查后的答案不起作用,因为用于切换的布尔变量需要被声明为final。一旦宣布最终我不能改变变量的值。
答案 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"/>