进度条是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>
网友评论