如何设置ProgressBar背景



我已经使用以下代码设置了ProgressBar样式。

我已经声明了progressbar小部件:

 <ProgressBar
    android:id="@+id/loadProgress"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="match_parent"
    android:layout_height="20dip"
    android:max="100"
    android:progressDrawable="@drawable/load_progress"
    android:progress="0" />

定义"@drawable/load_progress"

<?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/background_bk">
</item>
<item
    android:id="@android:id/progress"
    android:drawable="@drawable/progress_bk">
</item>
</layer-list>

定义"@drawable/backick_bk"(是红色)

<?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
    android:angle="0"
    android:endColor="#ff0000"
    android:startColor="#ff0990" />
<stroke
    android:width="1dp"
    android:color="#ff0000" />
 </shape>

定义 @drawable/progress_bk(它是绿色)

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
    android:angle="0"
    android:endColor="#00ff00"
    android:startColor="#00ff00" />
<stroke
    android:width="1dp"
    android:color="#00ff00" />
</shape>

即使我将进度值设置为小于100时,进度栏总是显示完全绿色(这是在进度值为100时出现的方式)。

这是我为有一个绿色的绿色的进度栏所做的:

android:background="@color/white"
android:progressBackgroundTint="@color/white"
android:progressTint="@color/green_light"

最后,我找到了一个简单的解决方案。

1

您可以在文件夹中找到默认绘制的XML文件" sdk_path platforms android19 data res drawable"在此处,您可以找到许多小部件的默认样式。

2

并获取文件" progress_horizontal.xml"。该文件中的代码是:

<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="#ff9d9e9d"
                android:centerColor="#ff5a5d5a"
                android:centerY="0.75"
                android:endColor="#ff747674"
                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="#ffffd300"
                    android:centerColor="#ffffb600"
                    android:centerY="0.75"
                    android:endColor="#ffffcb00"
                    android:angle="270"
            />
        </shape>
    </clip>
</item>
</layer-list>

3

您可以轻松地更改"进度颜色"one_answers"背景颜色"的颜色。

最新更新