android - android studio更改多个图像的背景图像
问题描述
我在可绘制文件夹中有 5 张图像(bg1、bg2、bg3、bg4、bg5),bg1 是我的默认背景。
我想更改背景的图像以便获取时间我单击按钮,当它到达最终图像时,它应该再次转到第一张图像,
例如,如果我点击按钮,它应该将 bg2 设置为背景,如果我再次点击它,它应该将 bg3 设置为背景,依此类推,
我尝试了以下代码,但它只更改了一次背景图像。
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
int x = 0;
while(x < 5){
x ++;
// Give image name that you want to show on button click
layout.setBackgroundResource(R.drawable.bg+x);
}
}
});
解决方案
您必须设置x
为全局变量。你设置x
了函数,所以它总是0
。
int x = 0; //global variable in activity/fragment
...
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
x ++;
x %= 5;
if (x==0) layout.setBackgroundResource(R.drawable.bg1);
else if (x==1) layout.setBackgroundResource(R.drawable.bg2);
else if (x==2) layout.setBackgroundResource(R.drawable.bg3);
else if (x==3) layout.setBackgroundResource(R.drawable.bg4);
else layout.setBackgroundResource(R.drawable.bg5);
}
}
});
推荐阅读
- java - 安装 JDK 8_251 但一直说 7.0_7
- batch-file - 批处理如何移动隐藏目录?
- c - 如何从两个彼此相对的文本文件中打印两行,而不是在 C 中逐一打印?
- python - 遍历两个列表,将列表中的项目与特定值进行比较
- vue.js - Vue | 路由器导航到另一个实例
- java - 如何清除android中的内存?在活动之间切换时内存增加
- python - 如何让python检测某个文件何时被保存/关闭?
- mysql - MYSQL - 在重复更新时插入
- laravel - 如果需要,如何配置 Orchid 控制面板和 nginx,以便 Orchid 加载 javascript 和 css 文件?
- android - Kotlin 上的 Android Retrofit 如何为响应添加时间戳?