android之ProgressBar及其子类SeekBar和RatingBar(一)

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监听器。监控其分数的变化


你可能感兴趣的:(UI,ProgressBar,界面,seekbar)