ProgressBar自己表明了进度条组件,它还派生出了两个经常使用的组件:SeekBar和RatingBar,他们的使用方法相似,只是显示界面有必定的区别。咱们看一下API文档中的说明:html
从图中咱们是能够直接看到ProgressBar继承自View类,直接子类有AbsSeekBar和ContentLoadingProgressBar,间接子类有RatingBar和SeekBar。下面依次介绍一下这几个控件的使用方法。android
ProgressBar是界面用于与用户交互的一个组件,用来提高用户友好度,一般用于向用户展现某个耗时操做时,用于展现完成的百分比,不至于让用户以为程序失去了响应。在API文档中,咱们看到他所支持的XML属性有以下:windows
xml属性名称 | 说明 |
android:animationResolution | 动画超时时间,必须是整数值,好比“100” |
android:indeterminate | 该属性设置为true,表示不精确显示进度 |
android:indeterminateBehavior | 设置当选择不精确显示进度时,如何描述到达最大值 |
android:indeterminateDrawable | 设置当选择不精确显示进度时,所绘制的drawable对象 |
android:indeterminateDuration | 设置不精确显示进度的持续时间 |
android:indeterminateOnly | 设置只采用不精确显示进度模式(状态保持模式将不会工做) |
android:interpolator | |
android:max | 设置进度能够达到的最大值 |
android:maxHeight | 可选参数 设置View的最大高度 |
android:maxWidth | 可选参数 设置View的最大宽度 |
android:minHeight | 可选参数 设置View的最小高度 |
android:minWidth | 可选参数 设置View的最小宽度 |
android:mirrorForRtl | 定义若是是否须要反映在RTL模式的相关画板,默认为false |
android:progress | 设置该进度已完成的进度值 |
android:progressDrawable | 设置该进度条轨道对应的drawable对象 |
android:secondaryProgress | 二级进度条,主要用于缓存使用的场景 |
该表格取自API19文档api
进度条支持多种风格,能够直接经过设置style属性来设置,API中也给出了以下的属性:缓存
Widget.ProgressBar.Horizontal 水平进度条
Widget.ProgressBar.Small 小环形进度条
Widget.ProgressBar.Large 大环进度条
Widget.ProgressBar.Inverse 普通大小的环形进度条
Widget.ProgressBar.Small.Inverse 小环形进度条
Widget.ProgressBar.Large.Inverse 大环形进度条
另一种使用方式就是可使用系统的ATT属性例如:
布局
例如以下的代码:学习
对于疯狂讲义3上的示例,我实际操做并无成功,自定义进度条虽然按照书上的示例操做, 可是显示上两个图标重叠,并不能按照进度状况显示,代码以下:动画
而显示效果倒是:spa
而在实际运行效果也是后台的模拟线程在更新UI上也是没有按照预想的结果执行,一开始显示的都是底部红色图片,一直不动,而后一下全更新成这种重叠图片了。.net
网上找了进度条的示例,感受也不是很完整,学起来不是很系统,想一想android自带的sdk中有示例,就把它找出来了,咱们先看一下效果:
示例的位置在&AndroidSDK&\samples\android-19\legacy\ApiDemos\src\com\example\android\apis\view 这个文件夹下,能够看到
而对应的布局文件能够向上级res文件夹下去找。代码这里再也不附上了。本身去找DEMO吧,我认可这个,我学的有点郁闷,标记一下。
SeekBar是滑动条,他与进度条的不一样时通常进度条都是用颜色填充进度,而滑动条则是用滑块表示进度数值,并且容许用户经过拖动滑块来改变数值,例如Windows的音量调节:
就是一个滑动条。滑块的样式则是经过android:thumb属性来指定。
下面作一个简单的小例子,显示结果就是在textView上显示拖动滑块改变的值。
简单的效果:
获取拖动的值须要设置他的 setOnSeekBarChangeListener 这个监听器,重写他的方法。上方右边的示例则是自定义了他的滑道,代码在下面一块给出。
首先给出滑道的样式定义(progress_drawable.xml):
下面是示例主页面的样式布局:
若是想模仿windows的调整音量的滑块,只须要在内部的线性布局的最前面再加个ImageView就能够作出差很少的效果。
这是后台代码,主要是监听器的实现。
这些只是SeekBar的基本用法,固然也能够多种实现,以下是在网上看到的网友作的效果:
示例连接:
星级评分条,其实也是一种拖动条,只是与拖动条的区别在于它提供星星来表示进度。常见的属性以下:
属性 | 说明 |
android:isIndicator | 设置该星级评分是否容许用户该表(true为不容许改变) |
android:numStars | 设置该星级评分条总共有多少星星 |
android:rating | 设置该星级评分条默认的星级 |
android:stepSize | 设置每次最少须要改变多少个星级 |
咱们来作一个简答的例子来演示这些属性:
一样先看一下效果:
而后咱们给出布局文件:
其中max和progress是进度条中的属性,由于RatingBar自己就是一个特殊的进度条,设置了最大值是100,5颗星显示,说明一颗星是20,步进0.5,说明一次至少能够选择半颗星。
后台主要是处理了改变时的监听器。
最近琐事繁多,学习的进度减慢了,遇到问题也卡了好久,有些问题须要多深刻的学习一下,多看看SDK中的示例和API文档。下面的章节会跳过一些简单控件的使用,给出SDK中示例代码的位置。再也不在博客上浪费空间了。加快学习进度。