有时候我们需要自定义ProgressBar的背景颜色和进度条颜色,网上有很多文章都是shape的属性解决的,比如
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<solid android:color="@color/progress_bg_color" />
</shape>
</item>
<item android:id="@android:id/progress">
<shape>
<solid android:color="@color/progress_color" />
</shape>
</item>
</layer-list>
运行结果运行出来,发现却只有progress的颜色(background的颜色被覆盖了)。
我们再来看看另外一个代码示例:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<solid android:color="@color/progress_bg_color" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<solid android:color="@color/progress_color" />
</shape>
</clip>
</item>
</layer-list>
运行结果运行正常了,说到这里大家应该都是知道原因了。没错,在progress item节点中添加一个<clip>节点就好。如果要设置secondaryProgress也需要加上<clip>节点。记住background千万别加<clip>节点,否则无效了。
如果你觉得该项目对你有用,动动你的小手指,举手之劳,赞有余香!
网友评论