web-dev-qa-db-ja.com

プログレスバーのデフォルトの色を変更するには?

私のActivty.My問題で円形ProgressBarを使用していますが、これは私のページのBGの色がProgressBarと同じであるため、これが私のページで正しく表示されないことです。どうすれば ProgressBarの色を変更して、適切に表示されるようにしますか?助けてください

24
AB1209

Progress.xmlという名前のxmlファイルを1つ作成し、res/xmlフォルダーに入れて、そのxmlファイルに以下のコードを記述してください。

 <?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> 

このxmlファイルを作成した後、プログレスバーの背景をこのxmlとして設定します。

お気に入り

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

これは古い質問ですが、テーマの使用についてはここでは触れません。デフォルトのテーマがAppCompatを使用している場合、ProgressBarの色は定義したcolorAccentになります。

colorAccentを変更すると、ProgressBarの色も変更されますが、これらの変更は複数の場所でも反映されます。したがって、特定のProgressBarだけに別の色が必要な場合は、そのProgressBarだけにテーマを適用することでそれを行うことができます。

  • デフォルトのテーマを拡張し、colorAccentをオーバーライドします

    <style name="AppTheme.WhiteAccent">
        <item name="colorAccent">@color/white</item> <!-- Whatever color you want-->
    </style>
    
  • ProgressBarAndroid:theme属性を追加します:

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

したがって、次のようになります。

<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" />

したがって、特定のcolorAccentProgressBarを変更しているだけです。

styleを使用しても機能しません。 Android:themeのみを使用する必要があります。テーマの使用方法については、こちらをご覧ください: https://plus.google.com/u/0/+AndroidDevelopers/posts/JXHKyhsWHAH

編集

プログラムによってProgressBarの色を変更するためのコードを次に示します。

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

最も簡単な方法は、Android:indeterminateTint属性を使用することです。

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

xMLでは、このような色を適用できます

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

進捗ドロアブルファイルを作成する

<?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>

そして設定Android:progressDrawable = "@ drawable/app_progressbar_back"

このような

<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" />
1
Pankaj Talaviya

Javaコード。

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

また、属性のみを変更できます

Android:indeterminateDrawable="@drawable/yourxmlfile"

このスタイルを保つ

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

ここにいくつかの説明があります。 Indeterminate ProgressBarの背景を変更するには、回転するため回転リングが必要です。 @Chiragの答えで、彼は回転リングを定義し、ProgressBarの背景に適用しました。 Horizontal ProgressBarがある場合は、rectangleが必要です。

PS:他の形状で試したことはありません。

0
Birendra Singh

アクティビティoncreateまたはフラグメントonViewCreated()でプログレスバーの色をプログラムで変更することもできます

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

ここで適用される色は「0xFFFF0000」、つまり赤です。必要に応じて変更できます

0
emilpmp

Android 2.3.1バージョン。progressbarというxmlファイルを作成し、レイアウト進行状況バータグ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

私にとっては、これらの2つの行が機能し、色を変更する必要がありました。

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

PS:ただし、Android 21

0