2017-11-28 17 views
0
public void startAnimation() { 


     ValueAnimator anim = ValueAnimator.ofFloat(oldmSweepAngle, mEndAngle); 
     anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
      @Override 
      public void onAnimationUpdate(ValueAnimator valueAnimator) { 
       ProgressCircle.this.mSweepAngle = (Float) valueAnimator.getAnimatedValue(); 
        ProgressCircle.this.invalidate(); 
      } 
     }); 
     anim.setDuration(500); 
     anim.setInterpolator(new AccelerateDecelerateInterpolator()); 
     anim.start(); 

    } 

} 

ユーザーからの各Bluetooth入力時にプログレス値を変更するプログレッシブサークルを作成しようとしています。 Progress値はmsEndangleを更新し、したがって、アニメーションの開始を使用してプログレスサークルを増分または減分します。私の問題は、新しいmEndangle/ProgressValueが到着するたびにアニメーターが0から再開するのではなく、アークを更新していないことです。 1st progressValueが50、2nd Progress値が55の場合、アニメーターは50からアニメーション化を開始し、55から55まで増やし、0から50まで色付けします。しかし、0から55のアニメーションが始まります。私を助けてください。値のアニメーターが以前の値から始まっていない

答えて

0

最後に、mSweepAngleを静的として宣言することによってコードが機能しました。私はoldmSweepangleにmSweepangleの以前の値を格納することができ、それがアニメーション化する方法を変更することができました。

関連する問題