我已经实现了一个自定义视图。这个视图非常简单,只有 2 个状态(有边框和无边框),它们通过 ontouch 事件切换(按下时有边框,按下时没有边框)。
这是没有问题的。当我想向用户显示序列时会出现问题(因此,禁用触摸事件并手动设置视图状态更改)。
我的布局中有 4 个该类型的视图,我想要的只是切换这些视图的状态,以便对用户可见。
MyView v1 = (MyView)findViewById(...)
MyView v2 = (MyView)findViewById(...)
MyView v3 = (MyView)findViewById(...)
MyView v4 = (MyView)findViewById(...)
v1.switchMode()
v2.switchMode()
v3.switchMode()
v4.switchMode()
此开关应保持一段时间(1 秒)对用户可见。模式是通过一个布尔变量实现的。我的实现如下:
public void switchMode()
this.mode = false;
this.invalidate();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
this.mode = true;
this.invalidate();
}
看来我的睡眠是全线程睡眠,所以我的视图没有重绘,我保持4秒没有任何响应并改变视图。
关于如何实现这个简单的状态切换的任何线索?
先感谢您