我想澄清一下在android中视图、属性等动画的使用。
通常,我创建的动画没有任何踏板的东西-直接在我的activity/fagment/viewClass中:
AlphaAnimation alphaAnimation = new AlphaAnimation(0,1);
alphaAnimation.setDuration(100);
mView.setAnimation(alphaAnimation);
alphaAnimation.start();
我将其理解为在主ui线程中执行的动画。
但是如果我要在一个工作线程中创建一个动画-这是正常的方式吗?
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
final AlphaAnimation alphaAnimation = new AlphaAnimation(0,1);
alphaAnimation.setDuration(100);
mView.post(new Runnable() {
public void run() {
mView.setAnimation(alphaAnimation);
alphaAnimation.start();
}
});
}
}).start();
}
最佳答案
你的线在这里没有实际效果。对mview.post()的调用本质上安排了在主线程的下一个可用周期中可运行的执行。您最好省去启动一个新线程的工作,并在主线程上完成这一切。这里没什么事。
动画工作我安排了很多小的工作,每帧运行在主线程上,大约每16ms。这是非常典型的。除非您看到一个需要优化的非常具体的问题,否则没有理由避免在主线程上执行这种工作。