安卓系統提供了水平進度條ProgressBar的樣式,而我們在實際開發中,差點兒不可能使用默認的樣式。原因就是“太丑”^_^
所以我們在很多其它的時候須要對其顏色進行自己定義,主要使用就是自己定義樣式文件。
再在drawable文件夾下新增progressbar.xml文件,能夠設置默認背景色和進度條的顏色
(值得一提的是支持漸變色)
代碼:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@android:id/background"> <!--形狀--> <shape> <!-- 角球--> <corners android:radius="5dip" /> <!--梯度--> <gradient android:angle="0" android:centerColor="#ff5a5d5a" android:centerY="0.75" android:endColor="#ff747674" android:startColor="#ff9d9e9d" /> </shape> </item> <item android:id="@android:id/secondaryProgress"> <clip> <shape> <corners android:radius="5dip" /> <gradient android:angle="0" android:centerColor="#80ffb600" android:centerY="0.75" android:endColor="#a0ffcb00" android:startColor="#80ffd300" /> </shape> </clip> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="5dip" /> <gradient android:angle="0" android:endColor="#8000ff00" android:startColor="#80ff0000" /> </shape> </clip> </item> </layer-list>
布局文件定義例如以下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center" tools:context=".ProgressBarActivity"> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="7.5dp" android:max="100" android:progress="80" android:layout_marginRight="20dp" android:progressDrawable="@drawable/progressbar" android:visibility="visible" android:layout_marginLeft="20dp" /> <ProgressBar android:id="@+id/progressBar2" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="15dp" android:max="100" android:progress="50" android:layout_marginRight="20dp" android:progressDrawable="@drawable/progressbar" android:visibility="visible" android:layout_marginLeft="20dp" android:layout_marginTop="20dp"/> <ProgressBar android:id="@+id/progressBar3" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="15dp" android:max="100" android:progress="100" android:layout_marginRight="20dp" android:progressDrawable="@drawable/progressbar" android:visibility="visible" android:layout_marginLeft="20dp" android:layout_marginTop="20dp"/> <ProgressBar android:id="@+id/progressBar4" style="?android:attr/progressBarStyleHorizontal" android:layout_width="fill_parent" android:layout_height="20dp" android:max="100" android:progress="100" android:layout_marginRight="20dp" android:progressDrawable="@drawable/progressbar" android:visibility="visible" android:layout_marginLeft="20dp" android:layout_marginTop="20dp"/> </LinearLayout>
------------結束-------------
<?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 設置背景色(黑色) --> <item android:id="@android:id/background" > <shape> <corners android:radius="5dip" /> <gradient android:startColor="#fff" android:endColor="#fff" /> </shape> </item> <!-- 設置進度條顏色(白色) --> <item android:id="@android:id/progress" > <clip> <shape> <corners android:radius="5dip" /> <gradient android:startColor="#ffca12" android:endColor="#ffca12" /> </shape> </clip> </item> </layer-list>