这是一个自定义Android组件,用于代替标准进度条组件。实现各种进度条样式,包括圆环,扫描等。
XML:
在你的attr.xml(res/value)中加入以下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<declare-styleable name=
"ProgressWheel"
>
<attr name=
"text"
format=
"string"
/>
<attr name=
"textColor"
format=
"color"
/>
<attr name=
"textSize"
format=
"dimension"
/>
<attr name=
"barColor"
format=
"color"
/>
<attr name=
"rimColor"
format=
"color"
/>
<attr name=
"rimWidth"
format=
"dimension"
/>
<attr name=
"spinSpeed"
format=
"integer"
/>
<attr name=
"circleColor"
format=
"color"
/>
<attr name=
"radius"
format=
"dimension"
/>
<attr name=
"barWidth"
format=
"dimension"
/>
<attr name=
"barLength"
format=
"dimension"
/>
<attr name=
"delayMillis"
format=
"dimension"
/>
<attr name=
"contourColor"
format=
"color"
/>
<attr name=
"contourSize"
format=
"float"
/>
</declare-styleable>
|
在你的root view 中加入
1
|
xmlns:ProgressWheel=
"http://schemas.android.com/apk/res/com.visualdenim.schooltraq"
|
1
|
在你的xml合适的地方加入 组件
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<com.todddavies.components.progressbar.ProgressWheel
android:id=
"@+id/pw_spinner"
android:layout_width=
"200dp"
android:layout_height=
"200dp"
android:layout_centerInParent=
"true"
ProgressWheel:text=
"Authenticating..."
ProgressWheel:textColor=
"#222"
ProgressWheel:textSize=
"14sp"
ProgressWheel:rimColor=
"#330097D6"
ProgressWheel:barLength=
"60dp"
ProgressWheel:barColor=
"#0097D6"
ProgressWheel:barWidth=
"5dp"
ProgressWheel:rimWidth=
"2dp"
/>
|
Java:
你需要从layout中获得进度条,或者初始化
1
2
|
ProgressWheel pw =
new
ProgressWheel(myContext, myAttributes);
ProgressWheel pw = (ProgressWheel) findViewById(R.id.pw_spinner);
|
使用.spin() 开始进度条滚动, .stopSpinning 停止进度条滚动
增加进度有点棘手, 你可以调用.incrementProgress(), 但是这样就超过了360度, 因为一个圆有360度, 你超过360度就会自动重置, 一个百分百自动分配
文章来至:近乎sns开发分享社区