2017-01-24 15 views
5

ProgressBarsの色を扱うことに関するいくつかの話題を見ましたが、私の疑問に答えることはできません。不確定水平のProgressBarの背景色を変更する

水平ProgressBar未定義のタイプを使用しています。 色付きのprogressBarを持っている間に透明な背景を持たせたいが、それを行う方法が見つからない。通常のプログレス(不定ではない)のために

私はprogressBar.getProgressDrawable()を呼び出すことによってLayerDrawableを得ることができます。その後、findDrawableByLayerId(android.R.id.background)を使って、私はバックグラウンドだけを色づけることができます。

しかしprogressBar.getIndeterminateDrawable()を使用して、それは私にGradientDrawableを返しますので、私は、同じ手順に従うことができません。

すべてのAPIレベルでGradientDrawableの色を取得することはできますか?もしそうなら、私は背景の色を取得し、それを変更することができます。

解決方法はありますか?

答えて

0

ステップ1:SDKのリソースからdrawable/progress_indeterminate_horizontal.xmlをプロジェクトにコピーします。

ステップ#2:あなたのプロジェクトにあなたのSDKのリソースからdrawable-hdpi/progressbar_indeterminate*をコピーします。

ステップ#3:あなたのプロジェクトにあなたのSDKのリソースからdrawable-mdpi/progressbar_indeterminate*をコピーします。

ステップ4:PNGファイルを変更して、見た目を変更します。

ステップ#5:(標準的なものに対して)あなたのPNGファイルを指すようにprogress_indeterminate_horizontal.xmlを変更します。

ステップ#6:indeterminateDrawable値のために使用@drawable/progress_indeterminate_horizontal。このような

Source

さもなければ

progressBar.getIndeterminateDrawable() 
    .setColorFilter(progressBar.getContext().getResources().getColor(<colorId>), 
     PorterDuff.Mode.SRC_IN); 
+0

描画可能なこのprogress_bar.xmlで色を変更することができますこれは右、私のプロジェクト内のすべての不確定進捗バーを変更するのでしょうか?その場合は、プロジェクトの単一のプログレスバーに適用する回避策はありますか? – AndroidDev

+0

@AndroidDev、すべての場合(第1)、特定の場合は(第2) – W4R10CK

2

使用カラーフィルタ:

progressBar.getIndeterminateDrawable().setColorFilter(color, PorterDuff.Mode.MULTIPLY); 
1

progressBar.setProgressDrawable(R.drawable.progress_bar)。

描画可能/ progress_bar.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:id="@android:id/background"> 
    <shape> 
     <corners android:radius="2dip" /> 
     <gradient android:startColor="#43ffffff" android:centerColor="#43ffffff" android:centerY="0.75" android:endColor="#43ffffff" android:angle="270" /> 
    </shape> 
</item> 
<item android:id="@android:id/progress"> 
    <clip> 
     <shape> 
      <corners android:radius="2dip" /> 
      <gradient android:startColor="#fff" android:endColor="#fff" android:angle="270" /> 
     </shape> 
    </clip> 
</item> </layer-list> 

あなたは

関連する問題