Wie erstelle ich einen horizontalen Ladefortschrittsbalken?

78

Wenn Sie eine Android-Anwendung deinstallieren oder eine Konfiguration vornehmen, wird ein solcher horizontaler Fortschrittsbalken angezeigt, wie im folgenden Bild dargestellt:

Fortschrittsanzeige

Es ist nicht der gleiche Stil wie @android:style/Widget.ProgressBar.Horizontal.

Wie verwende ich es in meiner eigenen Anwendung?

Freilauf
quelle

Antworten:

69

Es ist Widget.ProgressBar.Horizontalauf meinem Telefon, wenn ich einstelleandroid:indeterminate="true"

Sergey Glotov
quelle
7
wrap_content
Stellen Sie außerdem
178

Fügen Sie einfach eine STYLE- Linie hinzu und Ihr Fortschritt wird horizontal:

<ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/progress"
        android:layout_centerHorizontal="true"      
        android:layout_centerVertical="true"      
        android:max="100" 
        android:progress="45"/>
Vitas
quelle
Es funktioniert, aber keine dynamische horizontale Leiste ... brauche es konstant auf Fortschritt 45
Tarit Ray
+1, weil dies die erste Option ist, die für mich funktioniert hat. Wie stelle ich die Fortschrittsfarbe ein (nicht den Hintergrund)?
Taslim Oseni
1
@TaslimOseni Sie können die Farbe des Fortschrittsbalkens über progress.setProgressTintList (ColorStateList.valueOf (Color.GREEN)) festlegen.
Akash Kumar
63

Zur Verwendung des neuen Fortschrittsbalkens

style="?android:attr/progressBarStyleHorizontal"

für den alten grauen Farbfortschrittsbalken verwenden

style="@android:style/Widget.ProgressBar.Horizontal"

In diesem Fall haben Sie die Möglichkeit, die Höhe durch Einstellen von minHeight zu ändern

Der vollständige XML-Code lautet:

    <ProgressBar
    android:id="@+id/pbProcessing"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tvProcessing"
    android:indeterminateOnly="true"/>

indeterminateOnly wird auf true gesetzt, um einen unbestimmten horizontalen Fortschrittsbalken zu erhalten

Jaspinder Kaur
quelle
1
Was ist der Unterschied zwischen den beiden Stilen?
TWiStErRob
12

Fortschrittsbalken im Layout

<ProgressBar 
               android:id="@+id/download_progressbar"
               android:layout_width="200dp"
               android:layout_height="24dp"
               android:background="@drawable/download_progress_bg_track"
               android:progressDrawable="@drawable/download_progress_style"
               style="?android:attr/progressBarStyleHorizontal"
               android:indeterminate="false"
               android:indeterminateOnly="false" />

download_progress_style.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/progress">
    <scale 
      android:useIntrinsicSizeAsMinimum="true" 
      android:scaleWidth="100%" 
      android:drawable="@drawable/store_download_progress" />
</item>

venciallee
quelle
4

Arbeitete für mich, kann mit dem gleichen versuchen

<ProgressBar
    android:id="@+id/determinateBar"
    android:indeterminateOnly="true"
    android:indeterminateDrawable="@android:drawable/progress_indeterminate_horizontal"
    android:indeterminateDuration="10"
    android:indeterminateBehavior="repeat"
    android:progressBackgroundTint="#208afa"
    android:progressBackgroundTintMode="multiply"
    android:minHeight="24dip"
    android:maxHeight="24dip"
    android:layout_width="match_parent"
    android:layout_height="10dp"
    android:visibility="visible"/>
Tarit Ray
quelle