我想澄清一下在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。这是非常典型的。除非您看到一个需要优化的非常具体的问题,否则没有理由避免在主线程上执行这种工作。

07-24 21:40