如何解决如何在android studio中的imageview中交换图像?
如果我想通过单击按钮将图像更改为另一个图像,然后通过在 android studio 中的 imageview 上单击相同的按钮再次返回到上一个图像,如何以简短和最简单的方式做到这一点?由于我是新手,我对 imageview 的所有功能并不熟悉。
例如:- 在寻找更简单的方法失败了很多次之后,我编写了这段代码来做我需要的事情。
int i=0;
public void change(View v){
int img[] = {R.drawable.cat1,R.drawable.cat2};
ImageView cat = findViewById(R.id.imageView2);
if(i==0)
{cat.setimageResource(img[1]);
i=1;}
else {cat.setimageResource(img[0]);
i=0;}
}
在我尝试做这样的事情之前:-
public void change(View v){
ImageView cat = findViewById(R.id.imageView2);
if(cat.getDrawable()==R.drawable.cat2;)
{cat.setimageResource(R.drawable.cat1);}
else
{cat.setimageResource(R.drawable.cat1};
}
但它不断给出错误,他们有不同的类型,我也尝试了一些名为 getId() 的其他函数,但它也没有工作...... 所以我的主要目标是,是否有一个函数可以让我直接使用 drawable 文件夹中的图像来获取图像视图的资源,以及如何在 if else 或其他一些条件语句中实现它?
解决方法
第一种方法应该可行,但 i
值似乎与 ImageView
没有紧密耦合。因此,您可以为 ImageView
设置一个等于当前可绘制 ID 的标签:
初始标签:
ImageView cat = findViewById(R.id.imageView2);
cat.setImageResource(R.drawable.cat1);
cat.setTag(R.drawable.cat1);
然后点击监听器回调:
public void change(View v){
ImageView cat = findViewById(R.id.imageView2);
int tag = (int) cat.getTag();
if(tag == R.drawable.cat2){
cat.setImageResource(R.drawable.cat1);
cat.setTag(R.drawable.cat1);
} else {
cat.setImageResource(R.drawable.cat2);
cat.setTag(R.drawable.cat2);
}
}
,
您可以尝试 StateListDrawable、LevelListDrawable,对于每个状态/级别,它会根据您的状态/级别更改图像
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。