我正在使用AsyncTask进行列表视图,需要几秒钟才能填充,所以我没有在填充之前显示在列表顶部的视图(类似于progressBar微调器)
我在preExec中启动动画,例如:
protected void onPreExecute()
imageProgressOuter.startAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.pulse));
}
然后在postExec的最后我想要淡出ImageView(imageProgressOuter)。用以下方法很容易做到:
protected void onPostExecute(Void result) {
imageProgressOuter.startAnimation(AnimationUtils.loadAnimation(getActivity(), R.anim.spinner_fadeout));
}
这可以正常运行并淡出动画,但是在执行此操作时,脉冲通知将从onPreExecute停止。我希望在淡出发生时脉冲仍然发生,但我不太确定如何让一个运行然后并行启动另一个。我之前使用过动画集,但只是堆叠东西,然后启动整个集合。有没有办法在没有另一个停止的情况下开始第二个动画?
答案 0 :(得分:2)
你可以将你的imageProgressOuter视图包装在FrameLayout中,然后在onPostExecute()中淡化FrameLayout,同时继续第一个动画。
答案 1 :(得分:0)
AsynchronousTask默认情况下不会并行运行。
您可以使用executeOnExecutor
if( Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ) {
new MyAsyncTask().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
} else {
new MyAsyncTask().execute();
}
一些消息来源: