ProgressBarの色をカスタマイズ
ProgressBar | Android Developers
http://developer.android.com/intl/ja/guide/topics/ui/dialogs.html#ShowingADialog
メモ
- styleはhorizontalBarと書いてあるもの以外、全部円。大きさや回転方向が違う。
- ダウンロード時などに出てくることが多い、NotificationのものはNotification#setProgressで呼び出すとつくもので、これとは別物。
- ProgressDialogという途中でキャンセル等の操作を用意したダイアローグ専用のものもあるらしい(こっちはまだ試してない)。
コード
<!-- レイアウト --> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <ProgressBar style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/progressBar" android:max="100" android:indeterminate="true" android:indeterminateDrawable="@drawable/circular_progress" android:layout_gravity="center_horizontal" /> <ProgressBar style="?android:attr/progressBarStyleHorizontal" android:layout_width="100dp" android:layout_height="5dp" android:id="@+id/progressBar2" android:progress="55" android:secondaryProgress="75" android:background="#ccc" android:max="100" android:progressDrawable="@drawable/horizontal_progress" android:layout_gravity="center_horizontal" /> <ProgressBar style="?android:attr/progressBarStyleHorizontal" android:layout_marginTop="5dp" android:layout_width="100dp" android:layout_height="5dp" android:id="@+id/progressBar3" android:background="#ccc" android:indeterminate="true" android:indeterminateDrawable="@drawable/horizontal_progress" android:indeterminateBehavior="cycle" android:layout_gravity="center_horizontal" /> <ProgressBar style="?android:attr/progressBarStyleHorizontal" android:layout_marginTop="5dp" android:layout_width="100dp" android:layout_height="5dp" android:id="@+id/progressBar4" android:background="#ccc" android:indeterminate="true" android:indeterminateDrawable="@drawable/horizontal_progress" android:indeterminateBehavior="repeat" android:layout_gravity="center_horizontal" /> </LinearLayout>
<!-- circular_progress --> <?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" > <size android:height="76dip" android:width="76dip" /> <gradient android:angle="0" android:endColor="#ff99aa" android:startColor="#99ffffff" android:type="sweep" android:useLevel="false" /> </shape> </rotate>
<!-- horizontal_progress --> <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@android:id/secondaryProgress"> <clip> <shape> <corners android:radius="5dip" /> <solid android:color="#ff9999" /> </shape> </clip> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="5dip" /> <solid android:color="#aa0000" /> </shape> </clip> </item> </layer-list>
動作