Android ProgressBar高级自定义水平/圆形进度条
2016-02-26 10:59
615 查看
自定义水平ProgressBar
ProgressBar有两个进度,一个是android:progress,另一个是android:secondaryProgress。ProgressBar还分为确定的和不确定的,确定的是我们能明确看到进度,相反不确定的就是不清楚、不确定一个操作需要多长时间来完成,这个时候就需要用的不确定的ProgressBar了。属性android:indeterminate。第一步,样式文件名:progressbar_bg.xml,放在drawable文件夹:
view
sourceprint?
01.
<?xml version=
"1.0"
encoding=
"utf-8"
?>
02.
<layer-list xmlns:android=
"http://schemas.android.com/apk/res/android"
>
03.
04.
<!--
3
个层的顺序即为显示时的叠加顺序-->
05.
<!--背景色-->
06.
<item android:id=
"@android:id/background"
>
07.
<shape>
08.
<corners android:radius=
"5dip"
/>
09.
10.
<solid android:color=
"#CCCCCC"
/>
11.
</shape>
12.
</item>
13.
14.
<!--二级进度条的颜色-->
15.
<item android:id=
"@android:id/secondaryProgress"
>
16.
<clip>
17.
<shape>
18.
<corners android:radius=
"5dip"
/>
19.
20.
<solid android:color=
"#88F56100"
/>
21.
</shape>
22.
</clip>
23.
</item>
24.
25.
<!--一级进度条的颜色,也可以直接替换成图片-->
26.
<item android:id=
"@android:id/progress"
>
27.
<clip>
28.
<shape>
29.
<corners android:radius=
"5dip"
/>
30.
31.
<solid android:color=
"#F56100"
/>
32.
</shape>
33.
</clip>
34.
</item>
35.
36.
</layer-list>
第二步,布局组件代码:
view
sourceprint?
01.
<?xml version=
"1.0"
encoding=
"utf-8"
?>
02.
<LinearLayout xmlns:android=
"http://schemas.android.com/apk/res/android"
03.
android:orientation=
"vertical"
04.
android:layout_width=
"match_parent"
05.
android:layout_height=
"match_parent"
>
06.
07.
<ProgressBar
08.
android:id=
"@+id/progress_bar"
09.
style=
"?android:attr/progressBarStyleHorizontal"
10.
android:layout_width=
"match_parent"
11.
android:layout_height=
"wrap_content"
12.
android:layout_marginTop=
"100dp"
13.
android:minHeight=
"20dp"
14.
android:padding=
"10dp"
15.
android:progressDrawable=
"@drawable/progressbar_bg"
/>
16.
17.
</LinearLayout>
自定义圆形ProgressBar
第一步,在drawable文件夹下新建:progressbar_circle_1.xml,如下:[java] view
plain copy
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/loading" //自定义图片
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="360" >
</rotate>
第二步,在Style中定义mProgress_circle,如下:
[java] view
plain copy
<style name="mProgress_circle">
<item name="android:indeterminateDrawable">@drawable/progressbar_circle_1</item>
<item name="android:minWidth">25dp</item>
<item name="android:minHeight">25dp</item>
<item name="android:maxWidth">60dp</item>
<item name="android:maxHeight">60dp</item>
</style>
支持大小自己随意定,别失真就好
第三步,组件中引用,如下:
[java] view
plain copy
<ProgressBar
android:id="@+id/progressBar2"
style="@style/mProgress_circle"
android:layout_gravity="center_vertical"
android:layout_width="match_parent"
android:indeterminateDuration="1200"
android:layout_height="wrap_content" />
带进度的圆形进度条: /article/1645793.html
相关文章推荐
- Android开发之RecyclerView控件
- Android之Handler用法总结
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android.Camera2 API
- Android点击除edittext外其他区域或控件隐藏软键盘
- Android studio去掉actionbar
- Android如何修改包名??
- Android Paint
- Android Graphics( 五):drawText()详解
- Android Graphics(四):canvas变换与操作
- android Graphics(三):区域(Range)
- android 4.0 BLE开发官方文档
- Android Graphics(二):路径及文字
- Android 查看图库指定路径的最新照片
- Android问题解决The connection to adb is down
- Android Provider 属性
- Android自定义ViewGroup打造各种风格的SlidingMenu
- Android cancas 裁剪
- JNI技术简介-android学习之旅(92)
- JNI技术简介-android学习之旅(92)