1

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 度付近で停止する理由は、無限の繰り返し回数と再起動の繰り返しモードです。

アドバイスをありがとう

4

0 に答える 0