java - 西蒙说按下按钮后按钮颜色不会恢复正常
问题描述
public void flashButton(int color) {
final ImageView colors = findViewById(R.id.buttonsImage);
final int newColor = color;
Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
if(newColor == 1)
colors.setImageResource(R.drawable.green_activated_png);
if(newColor == 2)
colors.setImageResource(R.drawable.yellow_activated_png);
if(newColor == 3)
colors.setImageResource(R.drawable.red_activated_png);
if(newColor == 4)
colors.setImageResource(R.drawable.blue_activated_png);
System.out.println("Flashed color: " + newColor);
}
};
handler.postDelayed(r, 1000);
colors.setImageResource(R.drawable.normal_buttons);
System.out.println("Returned Color.");
}
使用 R.drawable.green_activated_png 更改每个按钮的按钮颜色)。然后,我用 (R.drawable.normal_buttons) 把它改回来。我认为我的问题出在 handler.postDelayed(r, 1000) 中。但是在用户按下正确的颜色后,颜色并没有恢复正常。
解决方案
您是在做相反的事情。您必须Button
在按下后立即更改颜色,并且您必须保持返回的颜色postDelayed
,以便在给定时间延迟后变为正常颜色。
public void flashButton(int color) {
final ImageView colors = findViewById(R.id.buttonsImage);
final int newColor = color;
if(newColor == 1)
colors.setImageResource(R.drawable.green_activated_png);
if(newColor == 2)
colors.setImageResource(R.drawable.yellow_activated_png);
if(newColor == 3)
colors.setImageResource(R.drawable.red_activated_png);
if(newColor == 4)
colors.setImageResource(R.drawable.blue_activated_png);
System.out.println("Flashed color: " + newColor);
Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
colors.setImageResource(R.drawable.normal_buttons);
System.out.println("Returned Color.");
}
};
handler.postDelayed(r, 1000);
}
推荐阅读
- vue.js - 赛普拉斯 Vue 组件测试从挂载发出的事件
- flutter - Get(Uri.http) does not working in flutter when get WorldTime API
- python - Discord.py 命令在频道或设置频道中说
- c# - 等待 Dispatcher.InvokeAsync 与 Dispatcher.Invoke
- php - 如何在mysql中使用php变量添加列代码?
- java - 如何操作面板中的单个像素
- java - Spring Boot mongo 与 CommonMongoRepository 但错误帮助我
- python - 每行输入的预测结果都相同
- django-authentication - django 如何在浏览器的私有窗口/隐身模式下获取 request.user
- python - 在使用 python 的文件中使用 append 时,如何避免创建额外的空行?