我正在开发一款供用户使用 Android 玩的棋盘游戏。由于 android 速度相当快,我想假装 android 正在执行一些艰难的计算,因此需要时间进行下一步操作。
我想做的事:-
- 用户回合 - 他移动。
- Android 转向 - Android 显示文本“我在思考”2 秒
- Android 会隐藏该文本,并且只有在此之后才会轮到他。
我尝试这样做:-
onAndroidTurn(){
textView1.setVisibility(View.VISIBLE);
Thread.sleep(2000);
textView2.setVisibility(View.GONE);
}
但是发生的情况是线程 hibernate 但没有显示文本(好吧我知道为什么)。
然后在stackoverflow上搜索,我学到了一个方法:-
onAndroidTurn(){
textView1.setVisibility(View.VISIBLE);
new Handler().postDelayed(new Runnable(){
void run() {
textView1.setVisibility(View.GONE);
}
}, 2000);
}
现在它的作用是,它在另一个线程中运行该文本,并且 android 的回合在屏幕上更新,移动后,android 的回合显示“思考”是完全愚蠢的。
我能为此做什么?
最佳答案
尝试以下操作:
- 显示“我在想”
- 计算你的移动,但不实际执行移动,只是将其存储一段时间
- 安排计时器
- 当计时器耗尽时,删除文本并进行移动
类似这样的事情:
onAndroidTurn(){
textView1.setVisibility(View.VISIBLE);
saveMove(calculateNextMove());
new Handler().postDelayed(new Runnable(){
void run() {
textView1.setVisibility(View.GONE);
doNextMove(restoreMove());
}
}, 2000);
}
关于java - Android - 隐藏文本 --> 显示文本 2 秒 --> 再次隐藏文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17617481/