私のActivty.My問題で円形ProgressBar
を使用していますが、これは私のページのBGの色がProgressBarと同じであるため、これが私のページで正しく表示されないことです。どうすれば ProgressBarの色を変更して、適切に表示されるようにしますか?助けてください
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">
これは古い質問ですが、テーマの使用についてはここでは触れません。デフォルトのテーマがAppCompat
を使用している場合、ProgressBar
の色は定義したcolorAccent
になります。
colorAccent
を変更すると、ProgressBar
の色も変更されますが、これらの変更は複数の場所でも反映されます。したがって、特定のProgressBar
だけに別の色が必要な場合は、そのProgressBar
だけにテーマを適用することでそれを行うことができます。
デフォルトのテーマを拡張し、colorAccent
をオーバーライドします
<style name="AppTheme.WhiteAccent">
<item name="colorAccent">@color/white</item> <!-- Whatever color you want-->
</style>
ProgressBar
にAndroid: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" />
したがって、特定のcolorAccent
のProgressBar
を変更しているだけです。
注: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));
最も簡単な方法は、Android:indeterminateTint属性を使用することです。
<ProgressBar
Android:indeterminate="true"
Android:indeterminateTint="@Android:color/black"
........... />
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"/>
進捗ドロアブルファイルを作成する
<?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" />
Javaコード。
progressBar.getProgressDrawable().setColorFilter(ContextCompat.getColor(getActivity(),R.color.product_status_color), PorterDuff.Mode.MULTIPLY)
また、属性のみを変更できます
Android:indeterminateDrawable="@drawable/yourxmlfile"
このスタイルを保つ
style="@Android:style/Widget.ProgressBar.Small"
ここにいくつかの説明があります。 Indeterminate ProgressBar
の背景を変更するには、回転するため回転リングが必要です。 @Chiragの答えで、彼は回転リングを定義し、ProgressBar
の背景に適用しました。 Horizontal ProgressBar
がある場合は、rectangle
が必要です。
PS:他の形状で試したことはありません。
アクティビティoncreateまたはフラグメントonViewCreated()でプログレスバーの色をプログラムで変更することもできます
pBar.getIndeterminateDrawable().setColorFilter(0xFFFF0000, Android.graphics.PorterDuff.Mode.MULTIPLY);
ここで適用される色は「0xFFFF0000」、つまり赤です。必要に応じて変更できます
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>
私にとっては、これらの2つの行が機能し、色を変更する必要がありました。
Android:indeterminateTint="@color/yourColor"
Android:indeterminateTintMode="src_in"
PS:ただし、Android 21