web-dev-qa-db-ja.com

Androidのプログレスバーの色を変更する方法は?

次のコードを使用して、アクティビティにプログレスバーを追加しました。

<LinearLayout
    Android:id="@+id/linlaHeaderProgress"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:gravity="center"
    Android:orientation="vertical"
    Android:visibility="gone" >

    <ProgressBar
        Android:id="@+id/pbHeaderProgress"
        Android:indeterminateOnly="true"
        Android:keepScreenOn="true"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" >
    </ProgressBar>
</LinearLayout>

それから私はそれを呼び出す:

 progressbar = (LinearLayout) findViewById(R.id.linlaHeaderProgress);
 progressbar.setVisibility(View.VISIBLE);

進行状況バーが表示され、その色を変更したいです。デフォルトでは、進行状況バーは灰色で表示されます。ここに私が色を変えようとしたものがあります:

Drawablesフォルダーにxmlファイルを作成し、activityindicator.xmlという名前を付けました。このxmlの内容は次のとおりです。

<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >

    <item Android:id="@Android:id/secondaryProgress">


        <color Android:color="#f58233" />
    </item>
    <item Android:id="@Android:id/progress">

        <color Android:color="#f58233" />
    </item>

</layer-list>

そして、レイアウトファイルを次のように変更しました。

<LinearLayout
    Android:id="@+id/linlaHeaderProgress"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:gravity="center"
    Android:progressDrawable="@drawable/activityindicator"
    Android:orientation="vertical"
    Android:visibility="gone" >

    <ProgressBar
        Android:id="@+id/pbHeaderProgress"
        Android:indeterminateOnly="true"
        Android:keepScreenOn="true"
        Android:progressDrawable="@drawable/activityindicator"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" >
    </ProgressBar>
</LinearLayout>

これは私が試したものですが、色は変わりません。誰が私が間違っているのか教えてもらえますか?

Lollipopバージョンを使用しています。

17
Teja Nandamuri

色を変更するだけの場合は、進行状況バーに色フィルターを追加します。

pbHeaderProgress.getIndeterminateDrawable().setColorFilter(Color.RED, Mode.MULTIPLY);

Modeパラメーターは、PorterDuff.Modeの値を参照します-利用可能 ここ

58
Evan Bashir

方法を見つけました。進行状況バーのタイプが「indeterminate:true」であるため、色を変更するために別のxmlファイルも必要ありません

以下を使用して、進行状況バーの色を変更しました。

pbHeaderProgress.getIndeterminateDrawable().setColorFilter(Color.parseColor("#C0D000"), Android.graphics.PorterDuff.Mode.SRC_ATOP);

ここからさまざまな16進カラーコードを取得できます。 http://www.nthelp.com/colorcodes.htm または http://www.color-hex.com/ =

9
Teja Nandamuri