基本上,在我的 Activity 中,有两个 View ,一个是动画表面 View ,另一个是具有动画的按钮。
最初我在表面 View 中创建了一个异步任务,并在“onprogressupdate”方法中“绘制”了它。据我了解,这就是应该如何完成的。
然而,每当我按下按钮时,表面 View 就会停止,就好像按钮的动画正在停止表面 View 的动画,这似乎是合乎逻辑的。
为了克服这个问题,我将“绘制”放回“后台运行”。我有一种感觉,这显然是错误的。有没有办法让我运行这两个动画而不会互相阻塞?
最佳答案
您不应从 UI 线程外部访问 Android UI 工具包。如果你想直接从 UI thrad 之外操作一个 View
,你应该使用 View.post(Runnable)
反而。例如,
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
mButton.post(new Runnable() {
public void run() {
// do something here
}
});
}
}).start();
}
关于android - 如何在不阻塞主线程的情况下制作流畅的动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11415939/