不知不觉这已经是第51期了,在前面50期我们学了Android开发中使用频率非常高的一些UI组件,当然这些组件还不足够完成所有APP的开发,还会经常用到一些诸如进度条、拖动条、搜索框、时间和日期选择器等组件,那么后面几期就来一起学习这些高级组件。
一、ProgressBar系列组件
ProgressBar也是一组重要的组件,ProgressBar本身代表了进度条组件,它还派生了两个常用的组件:SeekBar和RatingBar。ProgressBar及其子类在用法上十分相似,只是显示界面有一定的区别,因此本节把它们归为一类,针对它们的共性集中讲解,并突出介绍它们的区别。
ProgressBar及其子类的类图如下图所示:
ProgressBar继承于View类,直接子类有AbsSeekBar和ContentLoadingProgressBar, 其中AbsSeekBar的子类有SeekBar和RatingBar,可见这二者是基于ProgressBar实现的。
二、ProgressBar基础
进度条也是UI界面中一种非常实用的组件,通常用于向用户显示某个耗时操作完成的百分比。
进度条可以动态地显示进度,因此避免长时间地执行某个耗时操作时,让用户感觉程序失去了响应,从而更好地提高用户界面的友好性。
Android支持多种风格的进度条,通过style属性可以为ProgressBar指定风格。该属性可支持如下几个属性值:
-
@android:style/Widget.ProgressBar.Horizontal:水平进度条。
-
@android:style/Widget.ProgressBar.Inverse:普通大小的环形进度条。
-
@android:style/Widget.ProgressBar.Large:大环形进度条。
-
@android:style/Widget.ProgressBar.Large.Inverse:大环形进度条。
-
@android:style/Widget.ProgressBar.Small:小环形进度条。
-
@android:style/Widget.ProgressBar.Small.Inverse:小环形进度条。
其实在Android开发中,ProgressBar的样式设定有两种方式,除了上面这种,还有一种可以通过如下方式使用:
-
?android:attr/progressBarStyle
-
?android:attr/progressBarStyleHorizontal
-
?android:attr/progressBarStyleInverse
-
?android:attr/progressBarStyleLarge
-
?android:attr/progressBarStyleLargeInverse
-
?android:attr/progressBarStyleSmall
-
?android:attr/progressBarStyleSmallInverse
-
?android:attr/progressBarStyleSmallTitle
除此之外,ProgressBar还支持如下常用XML属性:
-
android:max:进度条的最大值。
-
android:progress:进度条已完成进度值。
-
android:progressDrawable:设置轨道对应的Drawable对象。
-
android:indeterminate:如果设置成true,则进度条不精确显示进度。
-
android:indeterminateDrawable:设置不显示进度的进度条的Drawable对象。
-
android:indeterminateDuration:设置不精确显示进