1

アプリケーションのアニメーションに問題があり、システム時間が変更される可能性があります。私はこの方法でアニメーターオブジェクトを作成します:

animator = new Animator(600, Animator.INFINITE, Animator.RepeatBehavior.REVERSE, setter);

セッターは、0.0 から 1.0 まで変化するアルファ プロパティです。問題は、システム時間を変更するたびに、アニメーションが停止/ブロックすることです。設定したシステム時間によっては、しばらくすると再起動することがあります。これを修正する方法はありますか? どうもありがとう。

4

1 に答える 1

2

タイマーを入れて、アニメーターの同じ期間中に動作するようにスケジュールします (タイマーの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( ....
      }
    }   
 }  
于 2012-05-25T10:47:49.940 に答える