23

Horizontal ProgressBar色を変えたい

私はこれを試しました

無期限の ProgressBar の色を変更するには?

まだ動作していません進行状況は青色で実行されます

これは私のコードです

<ProgressBar
                 android:id="@+id/mini_progress"
                 android:layout_marginLeft="10dip"
                 android:layout_marginRight="10dip"
                 style="?android:attr/progressBarStyleHorizontal"
                 android:layout_width="match_parent"
                 android:layout_height="20dip"
                 android:layout_gravity="center_horizontal"
                 android:indeterminate="false"
                 android:indeterminateBehavior="repeat"
                 android:indeterminateOnly="true"
                 android:visibility="gone"/>

色をピンクに変更するにはどうすればよいですか?

4

7 に答える 7

33

このコードを試してください -

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="5dip" />

                <solid android:color="#f58233" />
            </shape>
        </clip>

        <color android:color="#f58233" />
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="5dip" />

                <solid android:color="#f58233" />
            </shape>
        </clip>

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

</layer-list>

プログレスバー -

<ProgressBar
            android:id="@+id/progressBar1"
            style="?android:attr/progressBarStyleHorizontal"
            android:layout_width="200dp"
            android:layout_height="3dip"
            android:progressDrawable="@drawable/progress_bar" />

必要に応じてカラーコードを変更

于 2013-09-14T09:33:31.787 に答える
23

次のようなもの (この場合は pinkprogress.xml) で新しいドローアブルを作成します。

<?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" />
      <gradient android:startColor="#F5A9F2"
                android:centerColor="#F5A9F2"
                android:centerY="0.75"
                android:endColor="#F5A9F2"
                android:angle="270" />
    </shape>
  </item>
  <item android:id="@android:id/secondaryProgress">
    <clip>
      <shape>
        <corners android:radius="5dip" />
        <gradient android:startColor="#80ffd300"
                  android:centerColor="#80ffb600"
                  android:centerY="0.75"
                  android:endColor="#a0ffcb00"
                  android:angle="270" />
      </shape>
    </clip>
  </item>
  <item android:id="@android:id/progress">
    <clip>
      <shape>
        <corners android:radius="5dip" />
        <gradient android:startColor="#33FF33"
                  android:endColor="#008000"
                  android:angle="270" />
      </shape>
    </clip>
  </item>
</layer-list>

xml ファイルでプログレスバーに設定します。

 android:progressDrawable="@drawable/pinkprogress"
于 2013-09-14T09:35:54.967 に答える
14

必要な色を取得するためにこれを行いました:

    android:indeterminate="true"
    android:indeterminateTintMode="src_atop"
    android:indeterminateTint="@color/myColor"

私にとっては完璧に動作します。(API 21 以上)

于 2016-09-02T14:27:34.943 に答える
3

API 21 以降、これはワンライナーです。

<ProgressBar
            ...
            android:progressTint="@color/colorAccent"/>
于 2017-06-07T08:07:10.007 に答える
0

レンダラーを追加します。

public class CustomProgressBarRenderer :ProgressBarRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.ProgressBar> e)
    {
        base.OnElementChanged(e);

        Control.ProgressDrawable.SetColorFilter(Color.FromRgb(182, 231, 233).ToAndroid(), Android.Graphics.PorterDuff.Mode.SrcIn);
        //Control.ProgressTintListColor.FromRgb(182, 231, 233).ToAndroid();
        Control.ProgressTintList = Android.Content.Res.ColorStateList.ValueOf(Color.FromRgb(182, 231, 233).ToAndroid());


    }
}
于 2016-07-29T11:47:04.947 に答える