如何设置进度条背景
How to set progressbar background
我已经使用以下代码设置了进度条样式。
我已经声明了进度条小部件:
<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/background_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 时应显示的样子)。任何输入都将不胜感激。
最后,我找到了一个简单的解决方案。
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
您可以轻松更改 "progress color" 和 "background color" 的颜色。
以下是我制作背景清晰的绿色进度条的方法:
android:background="@color/white"
android:progressBackgroundTint="@color/white"
android:progressTint="@color/green_light"
我已经使用以下代码设置了进度条样式。
我已经声明了进度条小部件:
<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/background_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 时应显示的样子)。任何输入都将不胜感激。
最后,我找到了一个简单的解决方案。
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
您可以轻松更改 "progress color" 和 "background color" 的颜色。
以下是我制作背景清晰的绿色进度条的方法:
android:background="@color/white"
android:progressBackgroundTint="@color/white"
android:progressTint="@color/green_light"