自定义圆形进度条ProgressBar的三种方式

http://liuzhichao.com/p/636.html

进度条默认是不确定(indeterminate=true)Android进度条

Android进度条有4种风格可以使用。

默认值是progressBarStyle。
设置成progressBarStyleSmall后,图标变小。
设置成progressBarStyleLarge后,图标变大
设置成progressBarStyleHorizontal后,变成横向长方形。

自定义圆形进度条ProgressBar的一般有三种方式:

一、通过动画实现

定义res/anim/loading_anim.xml如下:

1 <?xml version="1.0" encoding="utf-8"?>
2 <animation-list android:oneshot="false"
3   xmlns:android="http://schemas.android.com/apk/res/android">
4   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f0" />
5   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f1" />
6   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f2" />
7   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f3" />
8   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f4" />
9   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f5" />
10   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f6" />
11   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f7" />
12   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f8" />
13   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f9" />
14   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f10" />
15   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f11" />
16   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f12" />
17   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f13" />
18   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f14" />
19   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f15" />
20   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f16" />
21   <item android:duration="150" android:drawable="@drawable/loading_blue_16_f17" />
22 </animation-list>

在layout文件中引用如下:

1 <ProgressBar
2         android:id="@+id/progressBar1"
3         android:layout_width="wrap_content"
4         android:layout_height="wrap_content"
5         android:layout_gravity="center_horizontal"
6         android:layout_marginBottom="20dip"
7         android:layout_marginTop="20dip"
8         android:indeterminate="false"
9         android:indeterminateDrawable="@anim/loading_anim" />

二、通过自定义颜色实现

定义res/drawable/loading_color.xml如下:

1 <?xml version="1.0" encoding="utf-8"?>
2 <rotate xmlns:android="http://schemas.android.com/apk/res/android"
3     android:fromDegrees="0"
4     android:pivotX="50%"
5     android:pivotY="50%"
6     android:toDegrees="360" >
7     <shape
8         android:innerRadiusRatio="3"
9         android:shape="ring"
10         android:thicknessRatio="8"
11         android:useLevel="false" >
12         <gradient
13             android:centerColor="#FFDC35"
14             android:centerY="0.50"
15             android:endColor="#CE0000"
16             android:startColor="#FFFFFF"
17             android:type="sweep"
18             android:useLevel="false" />
19     </shape>
20 </rotate>

在layout文件中引用如下:

1 <ProgressBar
2         android:id="@+id/progressBar2"
3         android:layout_width="wrap_content"
4         android:layout_height="wrap_content"
5         android:indeterminate="false"
6         android:indeterminateDrawable="@drawable/loading_color" />

三、使用一张图片进行自定义

定义res/drawable/loading_img.xml如下:

1 <?xml version="1.0" encoding="utf-8"?>
2 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
3     <item>
4         <rotate
5             android:drawable="@drawable/exchange_loading"
6             android:fromDegrees="0.0"
7             android:pivotX="50.0%"
8             android:pivotY="50.0%"
9             android:toDegrees="360.0" />
10     </item>
11 </layer-list>

在layout文件中引用如下:

1 <ProgressBar
2     android:id="@+id/progressBar3"
3     android:layout_width="wrap_content"
4     android:layout_height="wrap_content"
5     android:indeterminate="false"
6     android:indeterminateDrawable="@drawable/lodaing_img"
7     />
时间: 2024-12-10 19:02:15

自定义圆形进度条ProgressBar的三种方式的相关文章

Android三种方式实现ProgressBar自定义圆形进度条_Android

进度条样式在项目中经常可以见到,下面小编给大家分享Android三种方式实现ProgressBar自定义圆形进度条. Android进度条有4种风格可以使用. 默认值是progressBarStyle. 设置成progressBarStyleSmall后,图标变小. 设置成progressBarStyleLarge后,图标变大 设置成progressBarStyleHorizontal后,变成横向长方形. 自定义圆形进度条ProgressBar的一般有三种方式: 一.通过动画实现 定义res/a

Android三种方式实现ProgressBar自定义圆形进度条

进度条样式在项目中经常可以见到,下面小编给大家分享Android三种方式实现ProgressBar自定义圆形进度条. Android进度条有4种风格可以使用. 默认值是progressBarStyle. 设置成progressBarStyleSmall后,图标变小. 设置成progressBarStyleLarge后,图标变大 设置成progressBarStyleHorizontal后,变成横向长方形. 自定义圆形进度条ProgressBar的一般有三种方式: 一.通过动画实现 定义res/a

Android 实现自定义圆形进度条的功能_Android

Android 实现自定义圆形进度条:                 Android 自定义view,在大多数项目中根据客户需求及用户的体验度来说,都要重新写控件的来展示漂亮的界面,这里就对圆形进度条说下如何实现. 绘制自定义的圆形进度条,分为三个步骤,内圆.外圆.文字. 其中内圆和文字比较好绘制,进度条的变化是由外圆来控制的,所以核心就是绘制外圆. 首先定义分别定义这三个画笔,两个Paint和一个TextPaint mCirclePaint = new Paint(); mCirclePai

Android自定义圆形进度条

今天小编来手写一个自定义圆形进度条:先看效果: 首先我们在attrs属性文件中增加几个自定义属性 <?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="CustomProgressBar"> <!-- 圆形进度条进度显示的颜色 --> <attr name="roundProgressC

Android 实现自定义圆形进度条的实例代码_Android

Android 自定义圆形进度条 今天无意中发现一个圆形进度,想想自己实现一个,如下图: 基本思路是这样的: 1.首先绘制一个实心圆 2.绘制一个白色实心的正方形,遮住实心圆 3.在圆的中心动态绘制当前进度的百分比字符 4.绘制一个与之前实心圆相同颜色的空心圆 5.逐渐改变当前的百分比 6.根据百分比,逐渐改变正方形的大小,逐渐减小正方形的底部y轴的坐标,不断重绘,直到达到100% 首先看看自定义的属性 在values目录下新建attrs.xml内容如下: 定义绘制圆形的背景色,和绘制圆形的半径

Android实现自定义圆形进度条_Android

今天无意中发现一个圆形进度,想想自己实现一个,如下图: 基本思路是这样的: 1.首先绘制一个实心圆 2.绘制一个白色实心的正方形,遮住实心圆 3.在圆的中心动态绘制当前进度的百分比字符 4.绘制一个与之前实心圆相同颜色的空心圆 5.逐渐改变当前的百分比 6.根据百分比,逐渐改变正方形的大小,逐渐减小正方形的底部y轴的坐标,不断重绘,直到达到100% 首先看看自定义的属性 在values目录下新建attrs.xml内容如下: 定义绘制圆形的背景色,和绘制圆形的半径大小 <?xml version=

Android动态自定义圆形进度条

效果图: A.绘制圆环,圆弧,文本 //1.画圆环 //原点坐标 float circleX = width / 2; float circleY = width / 2; //半径 float radius = width / 2 - roundWidth / 2; //设置画笔的属性 paint.setColor(roundColor); paint.setStrokeWidth(roundWidth); paint.setStyle(Paint.Style.STROKE); canvas.

Android 实现自定义圆形进度条的实例代码

Android 自定义圆形进度条 今天无意中发现一个圆形进度,想想自己实现一个,如下图: 基本思路是这样的: 1.首先绘制一个实心圆 2.绘制一个白色实心的正方形,遮住实心圆 3.在圆的中心动态绘制当前进度的百分比字符 4.绘制一个与之前实心圆相同颜色的空心圆 5.逐渐改变当前的百分比 6.根据百分比,逐渐改变正方形的大小,逐渐减小正方形的底部y轴的坐标,不断重绘,直到达到100% 首先看看自定义的属性 在values目录下新建attrs.xml内容如下: 定义绘制圆形的背景色,和绘制圆形的半径

Android实现自定义圆形进度条

今天无意中发现一个圆形进度,想想自己实现一个,如下图: 基本思路是这样的: 1.首先绘制一个实心圆 2.绘制一个白色实心的正方形,遮住实心圆 3.在圆的中心动态绘制当前进度的百分比字符 4.绘制一个与之前实心圆相同颜色的空心圆 5.逐渐改变当前的百分比 6.根据百分比,逐渐改变正方形的大小,逐渐减小正方形的底部y轴的坐标,不断重绘,直到达到100% 首先看看自定义的属性 在values目录下新建attrs.xml内容如下: 定义绘制圆形的背景色,和绘制圆形的半径大小 <?xml version=