我的应用程序中的动画有问题,而且系统时间可以更改。我以这种方式创建动画对象:
animator = new Animator(600, Animator.INFINITE, Animator.RepeatBehavior.REVERSE, setter);
setter 是一个 alpha 属性,从 0.0 到 1.0 不等。问题是每当我更改系统时间时,动画都会停止/阻塞。它有时会在一段时间后重新启动,具体取决于我设置的系统时间。有没有办法解决这个问题?非常感谢。
我的应用程序中的动画有问题,而且系统时间可以更改。我以这种方式创建动画对象:
animator = new Animator(600, Animator.INFINITE, Animator.RepeatBehavior.REVERSE, setter);
setter 是一个 alpha 属性,从 0.0 到 1.0 不等。问题是每当我更改系统时间时,动画都会停止/阻塞。它有时会在一段时间后重新启动,具体取决于我设置的系统时间。有没有办法解决这个问题?非常感谢。
放入一个 Timer 并安排在动画师的同一时间段内工作(计时器的run
方法将实例化动画师对象)。因此,每当动画师停止时,它将像以下方式重新实例化:
计时器方法检查动画师是否正在工作,当答案是否定的时,它将实例化另一个具有相同参数的动画师,但仅在一个period time 持续时间等于剩余时间。
代码示例:
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( ....
}
}
}