Animation.setFillAfter / Before - 他们的工作/他们的用途是什么?

时间:2011-05-04 16:23:31

标签: android android-animation

在我的问题标题中,setFillBefore()setFillAfter()应该做什么方法?

我希望setFillAfter()在动画完成后对View永久更改,但这是不正确的?

1 个答案:

答案 0 :(得分:119)

答案是肯定的,它们确实有效,可能不符合您的期望 - 例如,setFillAfter(boolean fillAfter)的说明

  

如果fillAfter为真,那么   改造这个动画   执行将持续存在   结束。

当设置为true时,它会执行此操作。

然而,非直观的Android上的动画实际上并不动画View本身,而是动画视图的位图表示。

你可能遇到的问题是,在动画之后,View会回到动画前的状态 - setFillAftersetFillBefore无法帮助你,因为在那种情况下你是什么我们真正想做的是将View的属性设置为与动画表示相同(它们是单独的东西),而setFillAftersetFillBefore仅适用于动画属性,而不是View属性。

它们存在的原因是链接动画。假设你有一个翻译动画,然后是淡出。如果你没有在翻译动画上设置setFillAfter(true),那么View会翻译,跳回原来的位置,然后淡出。在翻译动画上设置setFillAfter(true)后,视图将移动,然后在其当前位置淡出。