Android 进度条功能实现

XML属性

属性名描述
android:animationResolution超时的动画帧之间的毫秒 ;必须是一个整数值,如“100”。
android:indeterminate超时的动画帧之间的毫秒 ;必须是一个整数值,如“100”。
android:indeterminateBehavior定义当进度达到最大时,不确定模式的表现;该值必须为repeat或者cycle,repeat表示进度从0重新开始;cycle表示进度保持当前值,并且回到0
android:indeterminateDrawable定义不确定模式是否可拉
android:indeterminateDuration时间不定的动画
android:indeterminateOnly限制为不定模式
android:max定义进度的最大值
android:maxHeight进度Widget最大高
android:miniHeight进度Widget最小高
android:maxWidth进度Widget最大宽
android:minWidth进度Widget最小宽
android:mirrorForRtl定义了相关画板如果需要反映在RTL模式
android:progress设置进度的默认值,值介于0到max之间
android:secondaryProgress定义二级进度值,值介于0到max。该进度在主进度和背景之间。比如用于网络播放视频时,二级进度用于表示缓冲进度,主进度用于表示播放进度。
android:progressDrawable自定义drawable显示
android:interpolator设置动画速度

进度条样式:

@android:style/Widget.ProgressBar.Horizontal:水平进度条(可以显示刻度,常用)。

@android:style/Widget.ProgressBar.Small:小进度条。

@android:style/Widget.ProgressBar.Large:大进度条。

@android:style/Widget.ProgressBar.Inverse:不断跳跃、旋转画面的进度条。

@android:style/Widget.ProgressBar.Large.Inverse:不断跳跃、旋转动画的大进度条。

@android:style/Widget.ProgressBar.Small.Inverse:不断跳跃、旋转动画的小进度条。

示例XML文件:

<ProgressBar
    android:id="@+id/mTaskScoreBar"
    android:layout_marginTop="35dp"
    android:layout_centerHorizontal="true"
    android:layout_width="200dp"
    android:layout_height="10dp"
    android:max="100"
    android:progress="50"
    android:progressDrawable="@drawable/progress_white"
    style="@android:style/Widget.ProgressBar.Horizontal" />

首先定义进度条的样式Widget.ProgressBar.Horizontal 水平进度条

设置初始进度android:progress为50,最大进度android:max为100

android:progressDrawable="@drawable/progress_white":自定义drawable显示

progress_white.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="50dp" />
            <solid android:color="#33FFEFCA" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <scale
            android:drawable="@drawable/shape_round_gray"
            android:scaleWidth="100%" />
    </item>
</layer-list>

android:id="@android:id/background"表示进度条不为空时显示的样式

android:id="@android:id/progress"表示进度条为空时的样式

shape_round_gray.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners android:radius="50dp" />

    <gradient
        android:angle="0"
        android:endColor="#FFFFFF"
        android:startColor="#FFFFFF "
        android:type="linear" />

</shape>

在Activity中使用方式:

mTaskScoreBar.max = 100  //设置最大值
mTaskScoreBar.progress = 10  //设置第一进度


进度条结果如上图所示

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值