1

我正在尝试在单击时制作动画(使用 xml 中的动画列表)TextView。在OnClickOnClickListener(),我正在使用 anAsyncTask来做一些后台操作。所以我在方法中放置了启动动画的代码AsyncTask's preexecute()。但是动画只有在doInBackground()完成后才会发生。这是为什么?中的动画代码preexecute()如下

protected void onPreExecute()
    {
        Drawable current =  mainActivity.textClicked.getBackground();
          if (current instanceof AnimationDrawable) {
              AnimationDrawable btnAnimation = (AnimationDrawable) current;
              btnAnimation.setVisible(true, false);
              btnAnimation.start();
          }
    }
4

2 回答 2

1

某处,可能是您在 ui 线程中使用 .get() 方法。

取自 这里

只需在工作线程中使用 .get() 即可。

于 2015-01-21T06:59:54.380 回答
0
Drawable current =  mainActivity.textClicked.getBackground();
          if (current instanceof AnimationDrawable) {
              AnimationDrawable btnAnimation = (AnimationDrawable) current;
              btnAnimation.setVisible(true, false);
              btnAnimation.start();
          }

在调用之前或之后写上面的行 AysncTask。因为如果我们使用AsyncTask它,它不会等到任务完成。

有关更多信息,请阅读http://developer.android.com/reference/android/os/AsyncTask.html

于 2013-01-12T09:05:33.730 回答