Wie erstelle ich einen kreisförmigen Fortschrittsbalken in Android, der sich darauf dreht?

Ich versuche eine abgerundete Fortschrittsanzeige zu erstellen. Das möchte ich erreichen

Es gibt einen grauen Hintergrundring. Darüber befindet sich ein blauer Fortschrittsbalken, der sich in 60 Sekunden oder einer beliebigen Anzahl von Sekunden auf einer Kreisbahn von 0 auf 360 bewegt.

Hier ist mein Beispielcode.

<ProgressBar
            android:id="@+id/ProgressBar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            style="?android:attr/progressBarStyleLarge"
            android:indeterminateDrawable="@drawable/progressBarBG"
            android:progress="50"
            />

Zu diesem Zweck erstelle ich in "progressBarBG" eine Ebenenliste und in dieser Ebenenliste gebe ich zwei Elemente wie gezeigt an.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
    <shape
            android:shape="ring"
            android:innerRadius="64dp"
            android:thickness="8dp"
            android:useLevel="false">

        <solid android:color="@color/grey" />
    </shape>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape
                android:shape="ring"
                android:innerRadius="64dp"
                android:thickness="8dp"
                android:useLevel="false">

            <solid android:color="@color/blue" />
        </shape>
    </clip>
</item>

Nun wird der erste graue Ring fein erzeugt. Der blaue Ring beginnt jedoch links von der Grafik und geht nach rechts, genau wie ein linearer Fortschrittsbalken funktioniert. So wird der Fortschritt bei 50% angezeigt, wobei der rote Pfeil die Richtung anzeigt.

Ich möchte den blauen Fortschrittsbalken wie erwartet auf einer Kreisbahn verschieben.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage