Android Animation的fillBefore fillAfter 以及fillEnable

这三个变量极易产生误解 这是Animation设计有问题的地方

为了能正常使用 需要仔细区分这三个变量

首先fillAfter是决定 动画结束之后 是不是应用该动画的显示 也就是说如果它是false,那么fillEnable 和 fillAfter的设计都没有用,当动画完毕 animation会自动清除

代码在viewgroup的 

void finishAnimatingView(final View view, Animation animation)
if (animation != null && !animation.getFillAfter()) {
view.clearAnimation();
}


而fileEnable决定在动画开始之前 view的位置 是不是动画起始位置 可以使用setAnimation来提前设置 在动画开始之前的animation显示

比如说 如果需要让动画开始之前 view显示在它绘制的位置 需要设置
android:fillBefore="false"
android:fillEnabled="true"
其他情况都会使动画立刻开始(会在初始位置停留一段时间 这根据startTime来定) 而且start listener会立即触发


猜你喜欢

转载自www.cnblogs.com/vete-l/p/9211621.html
今日推荐