自定义Android圆形进度条:ProgressWheel
这是一个自定义Android组件,用于代替标准进度条组件。实现各种进度条样式,包括圆环,扫描等。
XML:
To implement the view in your xml layout do the following:
-
Add the following to your attrs.xml file (in res/values):
<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" /> </declare-styleable>
-
Add the following code to the root view of your layout:
xmlns:ProgressWheel="http://schemas.android.com/apk/res/com.visualdenim.schooltraq"
-
Add the widget code in the appropriate place in your xml file. Here's a sample implementation:
<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:
First you need to either get a ProgressWheel from a layout file, or initalise one. Do this by:
ProgressWheel pw = new ProgressWheel(myContext, myAttributes);
ProgressWheel pw = (ProgressWheel) findViewById(R.id.pw_spinner);
To spin the progress wheel, you just call .spin()
and to stop it spinning, you call .stopSpinning()
Incrementing the progress wheel is slightly more tricky, you call .incrementProgress()
. However, this is out of 360,
(because a circle has 360 degrees), and will automatically reset once you get past 360. A percentage display is
automatically displayed.