【发布时间】:2015-07-21 21:17:26
【问题描述】:
我有一个动画要执行,它由一些水平对齐的箭头组成,其中箭头的 alpha 值将改变以实现动画效果(即第一个箭头的 alpha 值为 1.0,然后第二个箭头的值为 1.0 等等.).
如果我有这样的功能:
void highlightFirstArrow()
{
mArrow1.setAlpha(1.0f);
mArrow2.setAlpha(0.75f);
mArrow3.setAlpha(0.50f);
mArrow4.setAlpha(0.20f);
}
然后我想开始,重复无数次,然后停止这样的功能:
void animateArrows()
{
highlightFirstArray();
pause;
highlightSecondArray();
pause;
etc.
}
如果在 for 中执行,显然这会锁定 GUI 线程。实现所需动画的选项有哪些:
- run a for loop in a separate thread
- don't use a loop, instead constantly execute the functions individually via a timer
- use built in specific android animation mechanisms. If so which is most appropriate? Would AnimatorSet() be good for this scenario, or something else
【问题讨论】:
-
当你想在 Android UI 线程上重复做某事时,正确的解决方案几乎总是
Handler#postDelayed(...)。你应该可以找到很多关于它的帖子。 -
如果您的箭头是 ImageViews,请考虑使用
ImageView.setAlpha(int)以获得更好的性能。 -
setAlpha(int) 现已弃用
标签: android android-animation android-gui