標籤:android c style class blog code
在之前實現自訂進度條的時候,基本上都是使用ImageView來實現的,見
Android 用Animation-list實現逐幀動畫,最近一段時間看到APP的進度條很多都是ProgressBar然後圓圈裡面是一張圖片,所以就查看了一下ProgressBar的使用。
1、動畫實現
定義res/anim/loading.xml,例如:
<?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/load_1" /> <item android:duration="150" android:drawable="@drawable/load_3" /> <item android:duration="150" android:drawable="@drawable/load_5" /> <item android:duration="150" android:drawable="@drawable/load_7" /> <item android:duration="150" android:drawable="@drawable/load_9" /> <item android:duration="150" android:drawable="@drawable/load_11" /> <item android:duration="150" android:drawable="@drawable/load_13" /> <item android:duration="150" android:drawable="@drawable/load_15" /></animation-list>
2、自訂色彩實現
定義res/drawable/progress.xml,例如:
<?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="#FFFFDC35" android:centerY="0.50" android:endColor="#FFCE0000" android:startColor="#FFFFFFFF" android:type="sweep" android:useLevel="false" /> </shape></rotate>
3、一張圖片
定義res/drawable/progress_small.xml,例如:
<ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:indeterminateDrawable="@drawable/progress_small"/>
<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"><item> <rotate android:drawable="@drawable/dialog_progress_round" android:fromDegrees="0.0" android:toDegrees="360.0" android:pivotX="50.0%" android:pivotY="50.0%" /></item></layer-list>
4、設定背景
<ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content"android:background="@drawable/load_1"/>
如果只設定background,那麼調整好的圖片就會在圓圈中心。