我在应用程序中的动画和系统时间可以更改的事实上遇到了问题。我这样创建动画对象:
animator = new Animator(600, Animator.INFINITE, Animator.RepeatBehavior.REVERSE, setter);setter是一个从0.0到1.0的alpha属性。问题是,每当我更改系统时间时,动画就会停止/阻塞。它有时会在一段时间后重新启动,这取决于我设置的系统时间。有什么办法可以解决这个问题吗?非常感谢。
发布于 2012-05-25 18:47:50
设置一个计时器,并安排在动画器的相同持续时间内工作(计时器的run方法将实例化动画器对象)。因此,每当动画制作停止时,它将被重新实例化,如下所示:
计时器方法检查动画师是否正在工作,当答案是否定时,它将实例化另一个具有相同参数的动画师,但仅在等于剩余时间的时段内进行动画。
代码示例:
public void execute() {
start();
timer_.scheduleRepeating(100);
}
public void start() {
timer_ = new Timer() {
public void run() {
update();
}
};
}
public void update() {
if (time > neededTime) {
timer_.cancel();
}else {
if(!animator) { //needs some optimization
animator = new Animator( ....
}
}
} https://stackoverflow.com/questions/10752808
复制相似问题