webentwicklung-frage-antwort-db.com.de

Wie ändere ich die Standardfarbe des Fortschrittsbalkens?

Ich verwende eine kreisförmige ProgressBar in meiner Activty.My-Datei. Das Problem ist, dass sie auf meiner Seite nicht richtig angezeigt wird, da die Hintergrundfarbe meiner Seite mit ProgressBar identisch ist. Wie kann ich die Farbe von ProgressBar ändern , um sie richtig sichtbar zu machen? ? Bitte helfen Sie

21
AB1209

Bitte machen Sie einen XML-Dateinamen progress.xml, legen Sie ihn im Ordner res/xml ab und schreiben Sie den Code unten in diese XML-Datei.

 <?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:pivotX="50%" Android:pivotY="50%" Android:fromDegrees="0"
    Android:toDegrees="360">
    <shape Android:shape="ring" Android:innerRadiusRatio="3"
        Android:thicknessRatio="8" Android:useLevel="false">

        <size Android:width="76dip" Android:height="76dip" />
        <gradient Android:type="sweep" Android:useLevel="false"
            Android:startColor="#447a29" 
            Android:endColor="#447a29"
            Android:angle="0"
             />
    </shape>
</rotate> 

nachdem Sie diese XML-Datei erstellt haben, setzen Sie Ihren Progressbars-Hintergrund als XML.

Mögen

<ProgressBar
  Android:id="@+id/ProgressBar01" 
  Android:layout_width="wrap_content"
  Android:layout_height="wrap_content"
  Android:background = "@xml/progress">
43
Chirag

Dies ist eine alte Frage, aber die Verwendung eines Themas wird hier nicht erwähnt. Wenn Ihr Standarddesign AppCompat verwendet, ist die Farbe Ihrer ProgressBar die von Ihnen definierte colorAccent

Wenn Sie colorAccent ändern, wird auch die Farbe Ihrer ProgressBar geändert. Diese Änderungen werden jedoch auch an mehreren Stellen angezeigt. Wenn Sie also eine andere Farbe nur für eine bestimmte ProgressBar wünschen, können Sie dies tun, indem Sie ein Thema nur auf diese ProgressBar anwenden:

  • Erweitern Sie Ihr Standarddesign und überschreiben Sie colorAccent.

    <style name="AppTheme.WhiteAccent">
        <item name="colorAccent">@color/white</item> <!-- Whatever color you want-->
    </style>
    
  • Fügen Sie in ProgressBar das Android:theme-Attribut hinzu:

    Android:theme="@style/AppTheme.WhiteAccent"
    

So wird es ungefähr so ​​aussehen:

<ProgressBar
        Android:id="@+id/loading"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_gravity="center"
        Android:padding="10dp"
        Android:theme="@style/AppTheme.WhiteAccent" />

Sie ändern also einfach eine colorAccent für Ihre bestimmte ProgressBar.

Note: Die Verwendung von style funktioniert nicht. Sie müssen nur Android:theme verwenden Sie können die Verwendung von theme hier finden: https://plus.google.com/u/0/+AndroidDevelopers/posts/JXHKyhsWHAH

Bearbeiten

Hier ist der Code zum Ändern der Farbe von ProgressBar durch Programm.

ProgressBar progressBar = (ProgressBar) findViewById(R.id.pb_listProgressBar);
int colorCodeDark = Color.parseColor("#F44336");
progressBar.setIndeterminateTintList(ColorStateList.valueOf(colorCodeDark));
25
Naveen Kumar M

Der einfachste Weg ist die Verwendung des Android: indeterminateTint-Attributs:

<ProgressBar
        Android:indeterminate="true"
        Android:indeterminateTint="@Android:color/black"
        ........... />
8
Anupam KR

in xml können Sie die Farbe so anwenden

<ProgressBar
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:id="@+id/loader"
    Android:indeterminateTint="@color/my_color"
    Android:layout_centerInParent="true"/>
1
Aalap Patel

so können Sie Java-Code verwenden.

progressBar.getProgressDrawable().setColorFilter(ContextCompat.getColor(getActivity(),R.color.product_status_color), PorterDuff.Mode.MULTIPLY)
0
vikas kumar

sie können auch nur das Attribut ändern

Android:indeterminateDrawable="@drawable/yourxmlfile"

und diesen Stil beibehalten 

style="@Android:style/Widget.ProgressBar.Small"
0
Jonathan Duque

fortschrittliche Datei erstellen 

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">

<item Android:id="@Android:id/background">
    <shape>
        <corners Android:radius="5dip" />
        <solid Android:color="@color/colorWhite" />
    </shape>
</item>

<item Android:id="@Android:id/secondaryProgress">
    <clip>
        <shape>
            <corners Android:radius="5dip" />
            <solid Android:color="@color/colorPrimary" />
        </shape>
    </clip>
</item>

<item Android:id="@Android:id/progress">
    <clip>
        <shape>
            <corners
                Android:radius="5dip" />
            <solid Android:color="@color/colorPrimary" />
        </shape>
    </clip>
</item>

und set Android: progressDrawable = "@ drawable/app_progressbar_back"

so was

<ProgressBar
                Android:id="@+id/dialogProgressView"
                style="?android:attr/progressBarStyleHorizontal"
                Android:layout_width="match_parent"
                Android:layout_height="wrap_content"
                Android:progressDrawable="@drawable/app_progressbar_back"
                Android:progress="50"
                Android:layout_marginTop="@dimen/margin_20" />
0
Pankaj Talaviya

Hier ist eine Erklärung. Um den Hintergrund eines Indeterminate ProgressBar zu ändern, benötigen Sie einen Drehring, da dieser sich dreht. In der Antwort von @Chirag hat er einen Drehring definiert und auf den Hintergrund von ProgressBar angewendet. Wenn Sie ein Horizontal ProgressBar haben, benötigen Sie eine rectangle

PS: Ich habe es nicht mit anderen Formen versucht.

0
Birendra Singh

Sie können die Farbe Ihrer Fortschrittsleiste auch programmgesteuert in Ihren Aktivitäten oncreate oder in Ihren Fragmenten onViewCreated () ändern.

pBar.getIndeterminateDrawable().setColorFilter(0xFFFF0000, Android.graphics.PorterDuff.Mode.MULTIPLY);

Hier wird die Farbe "0xFFFF0000" verwendet, die rot ist. Sie können es entsprechend Ihren Bedürfnissen ändern

0
emilpmp

Ich verwende die Version Android 2.3.1. Ich erstelle eine XML-Datei mit dem Namen progressbar und rufe sie im Tag der Layout-Fortschrittsanzeige auf. Android: progressDrawable = "@ drawable/progressbar"

<item Android:id="@+id/progress">
    <clip>
    <shape>
        <gradient Android:startColor="@color/textColor"
            Android:centerColor="@color/textColor"
            Android:endColor="@color/textColor"
            Android:gradientRadius="20dp"
            >
        </gradient>
    </shape>
    </clip>
</item>
0
Sanush Radalage

für mich mussten diese beiden Zeilen vorhanden sein, damit sie funktionieren und die Farbe ändern:

Android:indeterminateTint="@color/yourColor"
Android:indeterminateTintMode="src_in"

PS: aber es ist nur verfügbar von Android 21

0