Android自定义进度条

来源:互联网 发布:听书软件哪个好 编辑:程序博客网 时间:2024/06/05 13:27

首先,在布局文件中添加进度条

<ProgressBar                android:id="@+id/refreshing"                style="@style/customProgressBar" />


这里主要是通过改变其默认样式来实现,这里使用的样式是customProgressBar。

customProgressBar在哪呢?在res/values中有个styles.xml,里面保存着样式信息。

 <style name="customProgressBar" parent="@android:style/Widget.ProgressBar.Small">        <item name="android:indeterminateDrawable">@drawable/custom_progress_bar</item>        <item name="android:layout_width">21dip</item>        <item name="android:layout_height">21dip</item>        <item name="android:layout_gravity">center</item>    </style>

其parent style为@android:style/Widget.ProgressBar.Small,代表小环形

有总结如下

* @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---小环形进度条

其中item项的  <item name="android:indeterminateDrawable">@drawable/custom_progress_bar</item>设置了绘制不显示进度的进度条的Drawable对象

drawable对象保存在drawable文件夹中,查看其中custom_progress_bar.xml

<?xml version="1.0" encoding="utf-8"?><animation-list xmlns:android="http://schemas.android.com/apk/res/android"    android:oneshot="false" >    <item        android:drawable="@drawable/loading_0"        android:duration="100"/>    <item        android:drawable="@drawable/loading_1"        android:duration="100"/>    <item        android:drawable="@drawable/loading_2"        android:duration="100"/>    <item        android:drawable="@drawable/loading_3"        android:duration="100"/>    <item        android:drawable="@drawable/loading_4"        android:duration="100"/>    <item        android:drawable="@drawable/loading_5"        android:duration="100"/>    <item        android:drawable="@drawable/loading_6"        android:duration="100"/>    <item        android:drawable="@drawable/loading_7"        android:duration="100"/></animation-list>
<animation-list />表示帧动画。

android:oneshot表示帧动画的自动执行:oneshot ,如果为true,表示动画只播放一次停止在最后一帧上,如果设置为false表示动画循环播放。

android:drawable="@drawable/loading_2"中的loading_2表示的是当前动画使用图片。

 android:duration="100"/>表示该图片显示的持续时间是0.1秒。

由于人眼视觉暂留的原因,整个动画看起来像一张图片在转动。

自定义进度条的配置已经完成,如需操作进度条,只需使用

refreshing = (ProgressBar) header.findViewById(R.id.refreshing);
即可。




0 0