自定義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.