79

ProgressBar不確定な色を基本の白/灰色から黒に変更する方法を知りたいですか? を変更するとindeterminateDrawable、アニメーション化されたプログレス バーの代わりに静止画像が表示されます。XMLで簡単に行う方法はありますか?

4

9 に答える 9

84
progressBar.getIndeterminateDrawable().setColorFilter(
            getResources().getColor(Your_Color),
            android.graphics.PorterDuff.Mode.SRC_IN);

Your_Color を次のような目的の色に置き換えます: R.color.your_color_code

于 2015-04-04T21:20:27.027 に答える
64

白/明るい背景で使用される既定のテーマで ProgressBar を取得するには、逆のスタイルのいずれかを使用します。

<ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Large.Inverse"/>
<ProgressBar style="@android:style/Widget.ProgressBar.Small.Inverse"/>

これにより、通常、透明な ProgressBar に黒が表示されますが、一部の OS インストールではカスタム アセットが使用されます。特定の色を探している場合は、CommonsWare が提供する指示に従って、独自のドローアブルを作成する必要があります。

于 2010-11-10T14:14:12.783 に答える
36

XMLで直接設定する必要がある不確定なProgressBarの色とアイテムandroid:indeterminateTintandroid:indeterminateTintMode属性を変更するために、他の回答はかなり古いと思います。ProgressBar

<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:indeterminateTint="@color/colorPrimary"
    android:indeterminateTintMode="src_in"
    android:indeterminate="true" />

android:indeterminateTint- 不確定な進行状況インジケーターに適用する色合い。

、、、、またはリソースへの参照"#rgb""#argb"形式のカラー値である必要があります。"#rrggbb""#aarrggbb"@color/colorPrimary

android:indeterminateTintMode- プログレス インジケーターの色合いを適用するために使用されるブレンド モード。

次の定数値のいずれかである必要があります:
addmultiplyscreen、またはsrc_atopsrc_insrc_over

これらの属性の Getter メソッドと Setter メソッドは次のとおりです。

それらはすべてAPI レベル 21で追加されました

于 2016-09-02T08:23:24.760 に答える
11

サンプルプロジェクトを作ってブログに投稿しています。見てください。http://www.hrupin.com/2011/09/21/how-to-make-custom-indeterminate-progressbar-in-android-or-how-to-change-progressbar-style-or-color

うまくいけば、それはあなたを助けます

于 2011-09-21T14:37:49.330 に答える
6
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background" android:drawable="@drawable/bg" />
    <item android:id="@android:id/secondaryProgress" android:drawable="@drawable/secondary" />
    <item android:id="@android:id/progress" android:drawable="@drawable/progress" />
</layer-list>
于 2012-03-05T09:42:21.960 に答える
-5

実際に(サークルとバーの両方で)行う必要があるのは、以下に示すようにドローアブルでxmlファイルを作成することです... .. のフレームを作成し、ur android:indeterminateDrawable= filename_in_drawable.... を設定します。

<?xml version="1.0" encoding="utf-8"?>
<animation-list
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
<item android:drawable="@drawable/progress_spinner_001" android:duration="300" />
<item android:drawable="@drawable/progress_spinner_002" android:duration="300" />
<item android:drawable="@drawable/progress_spinner_003" android:duration="300" />
  <item android:drawable="@drawable/progress_spinner_004" android:duration="300" />
    <item android:drawable="@drawable/progress_spinner_005" android:duration="300" />
      <item android:drawable="@drawable/progress_spinner_006" android:duration="300" />
     <item android:drawable="@drawable/progress_spinner_007" android:duration="300" />
    <item android:drawable="@drawable/progress_spinner_008" android:duration="300" />
</animation-list>

ps 必要に応じて表示するには、プログレスバーのサイズを変更する必要がある場合があります

于 2010-10-28T15:05:00.930 に答える