atl*_*der 6 animation multithreading android
我想在Android中澄清使用view,propery等动画.
通常,我创建没有任何Tread的东西的动画 - 直接在我的Activity/Fagment/ViewClass中:
AlphaAnimation alphaAnimation = new AlphaAnimation(0,1);
alphaAnimation.setDuration(100);
mView.setAnimation(alphaAnimation);
alphaAnimation.start();
Run Code Online (Sandbox Code Playgroud)
我理解这是在主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();
}
Run Code Online (Sandbox Code Playgroud)
你的线程在这里没有实际效果.对mView.post()的调用实质上是调度可运行的,以便在下一个可用循环中在主线程上执行.您也可以节省启动新线程的工作,并在主线程上完成所有操作.这里没有多少事情发生.
动画使我的调度工作在每个帧的主线程上运行很多小工作,大约每16ms.这很典型.除非您看到需要优化的非常具体的问题,否则没有理由避免在主线程上执行此类工作.
归档时间: |
|
查看次数: |
7100 次 |
最近记录: |