所以,我想制作一个按钮,每按一次按钮,它就会改变按钮上方的图像。我总共有2张图片,所以我不使用数组。假设我有image1.png和image2.png。默认图像是image1,按下按钮后,图像变为image2。如果我再次按下它会转到image1。
package blablablabla;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView image;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView) findViewById(R.id.myicon);
}
public void onClick(View view) {
switch(view.getId()){
case R.id.button1:{
image.setImageResource(R.drawable.initial);
return;
}
}
}
}
我想过制作if语句:如果图像是image1,则将其更改为image2,反之亦然。
问题:我改为image2后,无法切换回来。我知道我没有为此编写代码,因为我做错了。
答案 0 :(得分:5)
好的我认为这可能会:
package blablablabla;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity extends Activity {
ImageView image;
boolean flag = true;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
image = (ImageView) findViewById(R.id.myicon);
}
public void onClick(View view) {
switch(view.getId()){
case R.id.button1:{
if(flag)
{
image.setImageResource(R.drawable.initial);
flag=false;
}
else
{
image.setImageResource(R.drawable.secondary);
flag=true;
}
return;
}
}
}
}
答案 1 :(得分:1)
好的,在您检索onCreate()
的{{1}}中,首先需要使用ImageView
,以便您可以识别其中已有的图像。设置setTag()
的图像后,您无法获取资源ID。这只是一个解决方法,请执行此操作:
ImageView
现在,在您的image = (ImageView) findViewById(R.id.image);
image.setTag(R.drawable.image1);
中,您可以执行以下操作:
onClick()
基于:https://stackoverflow.com/a/14474954/1894684
您也可以使用setImageResource()代替setImageDrawable()。前者在UI线程上进行图像解码,但