这三个变量极易产生误解 这是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会立即触发