1.
ProgressBar分为不定时进度条和水平进度条两类.
或者叫做确定的和不确定的进度条。
进度条也是UI界面中一种非常实用的组件,
通常用于向用于显示某个耗时操作完成的百分比。
进度条可以动态地显示进度,因此避免长时间执
行某个耗时操作时,让用户感觉到失去了响应,
从而更好地提高用户界面的友好性。
Android支持几种风格的进度条,通过style属性可以为ProgressBar指定风格。
a)配置ProgressBar,为其设置style属性:
@android:style/Widget.ProgressBar.Horizontal水平进度条
@android:style/Widget.ProgressBar 中号圆形进度条
@android:style/Widget.ProgressBar.Inverse 中号圆形进度条
@android:style/Widget.ProgressBar.Small 小号圆形进度条
@android:style/Widget.ProgressBar.Small.Inverse小号圆形进度条
@android:style/Widget.ProgressBar.Large 大号圆形进度条
@android:style/Widget.ProgressBar.Large.Inverse大号圆形进度条
同样也可以使用attr的属性:
style="?android:attr/progressBarStyle"
style="?android:attr/progressBarStyleHorizontal"
style="?android:attr/progressBarStyleInverse"
style="?android:attr/progressBarStyleLarge"
style="?android:attr/progressBarStyleLargeInverse"
style="?android:attr/progressBarStyleSmall"
style="?android:attr/progressBarStyleSmallInverse
注意:
其中,带有Inverse参数和不带有Inverse参数的style属性区别在于:
当进度条控件所在的界面背景颜色为白色时,
需要使用带有Inverse参数的style属性,
否则进度条将看不见。
b)水平进度条可以设置max、progress、secondaryProgress等属性
max代表进度条的最大进度
progress代表当前进度值
secondaryProgress代表第二进度值,相当缓存值
比如在看网络视频时候都会有一个缓存的进度条
以及还要一个播放的进度,在这里缓存的进度就
可以是android:secondaryProgress,而播放进度
就是android:progress,有了secondProgress,
可以很方便定制ProgressBar。
c)设置progressDrawable属性,
使用layer-list图片资源,
用来自定义水平进度条的样式。
如下面的例子:
<layer-list>
<!-- 设置轨道的背景 -->
<item
android:id="@android:id/background"
android:drawable="@drawable/bar_bg">
</item>
<!-- 设置轨道上第二进度值部分的样式 -->
<item
android:id="@android:id/secondaryProgress"
android:drawable="@drawable/second">
</item>
<!-- 设置轨道上已完成部分的样式 -->
<item android:id="@android:id/progress"
android:drawable="@drawable/progress">
</item>
</layer-list>
注意:也可以参照源码去完成自定义样式的写法。
练习:通过按钮在Java代码中控制进度条。调用下面的方法:
setProgress(int):设置水平进度条的值
getMax():获取水平进度条的最大值
incrementProgressBy(int),设置进度条的进度增加或减少,
当参数为正数时进度增加,
为负数时进度减少。
d)显示在标题上的进度条
还有一种进度条,可以直接在窗口标题上显示,这种进度条不需要使用ProgressBar组件,直接由Activity的方法启用的。为了在窗口上显示进度条,需要经过如下两步:
1)调用Activity的requestWindowFeature()方法,该方法根据传入的参数可启用特定的窗口特征,例如传入Window.FEATURE_INDETERMINATE_PROGRESS则显示不带进度的进度条。
传入Window.FEATURE_PROGRESS则显示带进度的进度条。
2)调用Activity的
setProgressBarIndeterminateVisibility(boolean)
或setProgressBarVisibility(boolean)
方法即可控制进度条的显示和隐藏。
2.SeekBar,为其设置相关属性
拖动条和进度条非常相似,只是进度条采用颜色填充了
来表明进度完成的程度,而拖动条通过滑块的位置来
标识数值,拖动条允许用户拖动滑块改变值,因此拖
动条通常用于对系统的某种数值进行调节,比如调节音量等。
thumb 代表使用自定义图片显示拖动块
style="@android:style/Widget.SeekBar"这是之前的样式,
android每个版本都有自己的样式,默认情况下就显示当前版本的样式。
max,progress,progressDrawable
为seekbar添加SeekBar.OnSeekBarChangeListener监听器,监控其进度值变化.
监听器中的第三个参数:
fromUser用来告诉函数当前进度值的改变是否是由用户执行的
3.RatingBar星级评分
相关属性:
android:numStarts设置星级评分总共有多个星级
android:rating设置星级评分条默认的星级
android:stepSize设置每次至少需要改变多少个星级
为Ratingbar添加RatingBar.setOnRatingBarChangeListener监听器。监控其分数的变化