美文网首页工作生活
十、进度条(ProgressBar)的风格自定义

十、进度条(ProgressBar)的风格自定义

作者: 清梦星河哈 | 来源:发表于2019-07-04 09:32 被阅读0次
进度条是UI界面中的一种非常实用的组件,通常用于向用户显示某个耗时操作完成的百分比。因此进度条可以动态地显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了相应,从而更好地提高用户界面的友好性。

Android支持几种风格的进度条,通过style属性可以为ProgressBar指定风格。该属性可支持如下几个属性值:
@android:style/Widget.ProgressBar.Horizontal
@android:style/Widget.Material.Light.ProgressBar.Inverse
@android:style/Widget.Holo.ProgressBar.Large
@android:style/Widget.ProgressBar.Small
......
......
每种主题风格都不同,还有很多不一一列举。有兴趣可以试一下。

ProgressBar常用的XML属性

XML属性 说  明
android:max 设置该进度条的最大值
android:progress 设置该进度条的已完成进度值
android:progressDrawable 设置该进度条的轨道的绘制形式
android:indeterminate 该属性设为true,设置进度条不精确显示进度
android:indeterminateDrawable 设置绘制不显示进度的进度条的Drawable对象
android:indeterminateDuration 设置不精确显示进度的持续时间

其中android:progressDrawable用于指定进度条的轨道的绘制形式,该属性可指定为一个LayerDrawable对象(该对象可通过在XML文件中用<layer-list>元素进行配置)的引用。

代码如下,可以在<item>之间定义自己想要的样式,上面一个是轨道背景,下面一个是进度样式。(这个也是常用的自定义进度条风格的方法)

<?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="0dp" />
            <solid android:color="@android:color/darker_gray" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
         <clip>
            <shape>
                <corners android:radius="0dp" />
                <solid android:color="@android:color/holo_red_dark" />
            </shape>
        </clip>
    </item>
</layer-list>

相关文章

网友评论

    本文标题:十、进度条(ProgressBar)的风格自定义

    本文链接:https://www.haomeiwen.com/subject/ntkchctx.html