自定义ProgressBar样式

本文介绍如何为Android应用程序自定义ProgressBar的样式,包括圆形进度条和水平进度条,并提供了具体的XML配置示例。

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

在开发android应用的过程中,一个具有良好的用户的体验的项目,往往少不了ProgressBar。我们可以在各种各样的应用中,发现各种各样的样式的ProgressBar,那我们该如何定义我们自己的ProgressBar呢。

ProgressBar总体上分两种情况,水平进度条和圆形进度条。在定义样式时,需要区分两种进度条,否则将不起效果(至于原因,是跟framework有关)。

1. 自定义圆形进度条样式, custom_progress_bg.xml


<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/rotate_indicator_normal"
    android:pivotX="50%"
    android:pivotY="50%"
   />
为什么要这样定义呢,其实我们可以找到系统内置的样式,比如
  style="?android:attr/progressBarStyleLarge"
其内部也是这样的,因此,我们只要在布局文件中
<pre name="code" class="java"> <ProgressBar
            android:id="@+id/loadingIv"
            android:layout_width="30dp"
            android:layout_height="30dp"
            android:indeterminateDrawable="@drawable/<span style="font-size:18px; white-space: pre; background-color: rgb(51, 255, 51);">custom_progress_bg</span>"
            android:indeterminateDuration="100"
            android:indeterminateBehavior= "repeat"
            android:layout_margin="10dp" />



如此,自定义的圆形进度条样式就定义出来了

2. 自定义水平进度条样式

  首先,在drawable目录下,新建layer-list资源,progress_bg


<layer-list    
   xmlns:android="http://schemas.android.com/apk/res/android">   
    <!--背景图片-->  
     <item android:id="<span style="color:#ff0000;">@android:id/background</span>"   android:drawable="@drawable/bg" />    
    <!-二级进度条样式-->  
     <item android:id="<span style="color:#ff0000;">@</span><span style="color: rgb(255, 0, 0); font-family: Arial, Helvetica, sans-serif;">android:id/secondaryProgress</span>"   android:drawable="@drawable/sp"/>  
    <!--一级进度条样式-->
     <item android:id="<span style="color:#ff0000;">@android:id/progress</span>" android:drawable="@drawable/pg"/>  
 </layer-list>  

<span style="white-space:pre">	</span>
然后,在布局文件中,progress的属性中,这样实用,android:progressDrawable = "@drawable/progress_bg";

注意,上面代码中红色表明的id,是不能随便更改的。


在我们做项目的过程中,只要将圆形进度条和水平进度条区分开来,自定义实用样式,就不会有问题了。






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值