【Android学习笔记】progressbar颜色样式更换

本文介绍了如何在Android中更改ProgressBar的颜色样式。通过在/res/drawable创建bar_color.xml文件设置背景色和进度条颜色,例如实现橙色进度条。在XML布局中使用android:progressDrawable引用该文件。为解决进度条右侧无弧度的问题,可以改用另一个drawable资源文件,并在colors.xml中添加白色颜色定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

progressbar修改背景为其它颜色:



在 /res/drawable 目录下,添加 bar_color.xml 文件,自己更换需要的背景色和进度条颜色,我这里是橙色的进度条。

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--  设置背景色(黑色)  -->
    <item  android:id="@android:id/background" >
        <shape>
            <corners android:radius="10dip" />
            <gradient android:startColor="#ffffff"
                android:endColor="#ffffff" />
        </shape>
    </item>

    <!--  设置进度条颜色(白色)  -->
    <item  android:id="@android:id/progress" >
        <clip>
            <shape>
                <corners android:radius="10dip" />
                <gradient  android:startColor="#FF6600"
                    android:endColor="#FF6600" />
            </shape>
        </clip>
    </item>

</layer-list>  


然后在xml布局中得progressbar中加入一句属性,android:progressDrawable="@drawable/barcolor" ,如下

<ProgressBar
        android:id="@+id/precent"
        android:layout_width="wrap_content"
        android:layout_height="15dp"
        android:layout_marginTop="3dp"
        android:layout_weight="2"
        android:progressDrawable="@drawable/bar_color"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:max="100"
         />

但是,图片还有个问题,就是右边没有弧度,不好看,我们需要的是跟左边一样的,有弧度的进度条。我们这样做:

在android:progressDrawable 这个属性换成另外一个drawable文件,如下

<ProgressBar
        android:id="@+id/precent"
        android:layout_width="wrap_content"
        android:layout_height="12dp"
        android:layout_marginTop="3dp"
        android:layout_weight="3"
        android:progressDrawable="@drawable/bar_color"
        style="@android:style/Widget.ProgressBar.Horizontal"
        android:max="100"
         />


/res/drawable中新建bar_color.xml:

自己在colors.xml文件上加上白色的<color name="white">#FFFFFF</color>

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--  设置背景色白色)  -->
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="10dip" />
            <gradient
                android:startColor="@color/white"
                android:endColor="@color/white"
                android:angle="45" />
        </shape>
    </item>

    <!--  设置进度条颜色(橙色)  -->
    <item android:id="@android:id/progress" >
        <scale android:scaleWidth="100%"
            android:drawable="@drawable/round_orange" />
    </item>

</layer-list>
而进度条的颜色,再在 /res/drawable新建一个round_orange.xml,颜色换成自己想要的颜色即可

<?xml version="1.0" encoding="UTF-8"?><!-- EditText 秒表效果 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <!-- 填充的颜色 -->

    <solid android:color="#FF6600" />

    <!-- 设置按钮的四个角为弧形 -->
    <!-- android:radius 弧形的半径 -->

    <corners android:radius="10dip" />


</shape>
下图截取时分辨率不够,真实图片是不会失真的。。。因为是用代码写的,不是用图片,因此效果如同文章顶部那图片那么清晰。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值