[ApiDemos] 中的progressbar

今天我们来看看应用程序中很常见的一个组件–progressbar。progressbar是直接继承了View,要使用他的话,直接在布局文件中定义就可以了。

xml属性:

  • android:max 设置最大值
  • android:progress 设置进度的当前值
  • android:maxHeight 、android:maxWidth
  • android:progressDrawable 设置样式图片
  • style:用来设置 progressbar 的样式,我们常见的有进度条,和进度圆圈,就是通过这个进行设置的,有以下值:
    • Widget.ProgressBar.Horizontal 常见的水平进度条样式
    • Widget.ProgressBar.Small 小的圆形进度条
    • Widget.ProgressBar.Large 大圆形进度条
    • Widget.ProgressBar.Inverse 反向的圆形进度条
    • Widget.ProgressBar.Small.Inverse 反向的小圆形进度条
    • Widget.ProgressBar.Large.Inverse 反向的大圆形进度条

ApieDemo 源码

下面来看看ApieDemo里面的代码:

布局文件:

如何自定义进度条

首先来看看进度条的布局文件

可以看到有一行style,那style=”?android:attr/progressBarStyleSmall”里面究竟是怎么写的,我特意去下载了安卓系统的源码来看。(此处的源码不是SDK 下面的Source,是系统源码)其实,他是用xml资源文件来定义样式的,如果我们要自定义一个进度条,也可以参照谷歌的样式进行修改

比如,系统默认的圆形进度条他是不带数字显示的,我们可以自己定义一个圆形进度条,并且带数字显示进度。
以下部分参考了
自定义progressbar

首先在values下面新建一个attrs.xml,在里面定义我们的属性。

用代码实现圆形进度条带数字显示,定义一个 RoundProgressBar 继承 View 类,重写他里面的onDraw()方法,

布局文件部分,只需要用包名加类名就可以直接使用我们刚刚定义好的 progressbar 了。

这是mainActivity

自定义的重点就是这个 onDraw()方法

效果截图:
Screenshot_20160131-142820

发表评论

电子邮件地址不会被公开。 必填项已用*标注