进度条样式在项目中经常可以见到,下面小编给大家分享Android三种方式实现ProgressBar自定义圆形进度条。
Android进度条有4种风格可以使用。
默认值是progressBarStyle。
设置成progressBarStyleSmall后,图标变小。
设置成progressBarStyleLarge后,图标变大
设置成progressBarStyleHorizontal后,变成横向长方形。
自定义圆形进度条ProgressBar的一般有三种方式:
一、通过动画实现
定义res/anim/loading_anim.xml如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<?xml version= "1.0" encoding= "utf-8" ?> <animation-list android:oneshot= "false" xmlns:android= "http://schemas.android.com/apk/res/android" > <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f0" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f1" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f2" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f3" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f4" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f5" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f6" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f7" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f8" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f9" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f10" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f11" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f12" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f13" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f14" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f15" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f16" /> <item android:duration= "150" android:drawable= "@drawable/loading_blue_16_f17" /> </animation-list> |
在layout文件中引用如下:
1
2
3
4
5
6
7
8
9
|
<ProgressBar android:id= "@+id/progressBar1" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:layout_gravity= "center_horizontal" android:layout_marginBottom= "20dip" android:layout_marginTop= "20dip" android:indeterminate= "false" android:indeterminateDrawable= "@anim/loading_anim" /> |
二、通过自定义颜色实现
定义res/drawable/loading_color.xml如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?xml version= "1.0" encoding= "utf-8" ?> <rotate xmlns:android= "http://schemas.android.com/apk/res/android" android:fromDegrees= "0" android:pivotX= "50%" android:pivotY= "50%" android:toDegrees= "360" > <shape android:innerRadiusRatio= "3" android:shape= "ring" android:thicknessRatio= "8" android:useLevel= "false" > <gradient android:centerColor= "#FFDC35" android:centerY= "0.50" android:endColor= "#CE0000" android:startColor= "#FFFFFF" android:type= "sweep" android:useLevel= "false" /> </shape> </rotate> |
在layout文件中引用如下:
1
2
3
4
5
6
|
<ProgressBar android:id= "@+id/progressBar2" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:indeterminate= "false" android:indeterminateDrawable= "@drawable/loading_color" /> |
三、使用一张图片进行自定义
定义res/drawable/loading_img.xml如下:
1
2
3
4
5
6
7
8
9
10
11
|
<?xml version= "1.0" encoding= "utf-8" ?> <layer-list xmlns:android= "http://schemas.android.com/apk/res/android" > <item> <rotate android:drawable= "@drawable/exchange_loading" android:fromDegrees= "0.0" android:pivotX= "50.0%" android:pivotY= "50.0%" android:toDegrees= "360.0" /> </item> </layer-list> |
在layout文件中引用如下:
1
2
3
4
5
6
7
|
<ProgressBar android:id= "@+id/progressBar3" android:layout_width= "wrap_content" android:layout_height= "wrap_content" android:indeterminate= "false" android:indeterminateDrawable= "@drawable/lodaing_img" /> |
以上内容是小编给大家分享的Android三种方式实现ProgressBar自定义圆形进度条,希望对大家有所帮助!