【发布时间】:2013-07-16 12:53:36
【问题描述】:
我创建了 Animation 类的扩展,以创建背景淡出动画。我在按下 ListView 行项目后开始动画。如果我一个接一个地按下,我想取消第一个动画并开始第二个。但是我遇到的一个错误是,当我一排又一排快速按下时,动画不会停止。调试后我注意到applyTransformation 方法在第一个动画中一直运行。我决定重写取消功能,但如何停止转换?
public BackgroundAnimation(View view, int color){
this.view = view;
setDuration(4000L);
red = Color.red(color);
blue = Color.blue(color);
green = Color.green(color);
}
@Override
public void applyTransformation(float interpolatedTime,Transformation t){
//super.applyTransformation(interpolatedTime, t);
view.setBackgroundColor(Color.argb((int) ((1 - interpolatedTime) * 255), red, green, blue));
}
【问题讨论】:
-
你试过 clearAnimation() 吗?
-
应该可以,为什么你认为不行?
-
不知道,我以为我已经实现了我的自定义动画类,而不是应该的。还是不完全!?
-
所以 interpolatedTime 总是 0 -> 1?
-
如果我运行取消方法,该方法将继续以 interpolatedTime 0 运行。如果我调用 clearAnimation 比是它从 0 -> 1 运行。