Android アプリ用のカスタム プログレス バーを作成しようとしています。パスと 2 つの同心円を含むドローアブルを作成しました。アイデアは、赤い部分が円の円周を埋め、0 度マーク近くに達すると再び再開するというものです。問題は、円が正常にいっぱいになるのに、再起動しないことです。この動作を制御するのは、画像ビューに存在するドローアブルを無効にする ValueAnimator です。これは、ドローアブルが達成しようとすべきことの図です。
この Value-Animator のコードを微調整するために最善を尽くしましたが、想定されていることを実行しません。Value-Animator のコードは次のとおりです。
ValueAnimator val = ValueAnimatro.ofInt(0,360);
val.setDuration(1000);
val.setRepeatCount(ValueAnimator.INFINITE);
val.setRepeatMode(ValueAnimator.REPEAT);
val.addUpdateListener(...){
public void onAnimationUpdate(ValueAnimator c){
int a = (int)updatedAnimation.getAnimatedValue();
if(a!=0){
float b = 1f*a;
ProgressShow.sweepAngle = b;
image45.invalidateDrawable(image45.getDrawable());
}
現在、ProgressShow はドローアブル クラスの名前であり、ProgressShow.sweepAngle は、パスを描画するときに onCanvas メソッド内で使用される変数です。次のように使用されます。
path.arcTo(0,sweepAngle);
swiftAngle 変数は、ValueAnimator の onAnimationUpdate メソッド内で常に変更されます。
ValueAnimator の性質に基づいて再起動する必要があるときに、赤いリングが 360 度付近で停止する理由は、無限の繰り返し回数と再起動の繰り返しモードです。
アドバイスをありがとう