1、在res/drawable下创建progress_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/progress_bg">
<shape>
<corners android:radius="10dp"/>
<solid android:color="#ddd"/>
</shape>
</item>
<item android:id="@+id/progress">
<clip>
<shape>
<corners android:radius="10dp" />
<gradient
android:startColor="@color/colorAccent"
android:endColor="@color/colorPrimary"
android:angle="0"/>
</shape>
</clip>
</item>
</layer-list>
(item的id可以不加,只是为了下面方便说明)
说明:
layer_list中第一层progress_bg作为进度条背景
layer_list中第二层progress作为进度条
可以发现
两个item唯一区别就是clip标签的有无
有clip的就是进度条,没有clip就是固定不动的背景
其中进度条用了gradient(梯度)标签实现渐变效果
在xml中:
<ProgressBar
android:layout_width="24dp"
android:layout_height="24dp"
android:progressDrawable="@drawable/progress_bar_bg"
style="?android:attr/progressBarStyleHorizontal"
/>
最终效果
而且这样也可以随便改变bar的高度了。。
参考链接:
1、shape的使用https://www.jianshu.com/p/ef734937b521
2、如何自定义progressBar样式https://stackoverflow.com/questions/16893209/how-to-customize-a-progress-bar-in-android