关于自定义ProgressBar背景色总是白色Bug解决

有时候我们需要自定义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>节点,否则无效了。

项目地址

如果你觉得该项目对你有用,动动你的小手指,举手之劳,赞有余香!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,861评论 25 708
  • 概述 今天我们来探究一下android的样式。其实,几乎所有的控件都可以使用 background属性去引用自定义...
    CokeNello阅读 4,896评论 1 19
  • 原文出处:http://www.ccbu.cc/android/progressbar-intro Progres...
    ccbuluo阅读 1,581评论 0 2
  • XML bitmap XML 位图是在 XML 中定义的资源,指向位图文件。实际上是原始位图文件的别名。XML 可...
    李建彪阅读 1,743评论 0 3
  • 宋代才子诗人苏轼在《水调歌头.明月几时有》有言:“人有悲欢离合,月有阴晴圆缺,此事古难全。”说明人的情绪是多变的,...
    王老妖阅读 340评论 0 0