一、ProgressBar基礎使用
**(1)默認ProgressBar
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
(2)ProgressBar屬性
- android:indeterminate:設置為不確定模式袱贮,動畫無限循環(huán)
- android:indeterminateDrawable:定義不確定模式是否可drawable
- android:max:定義進度的最大值
- android:maxHeight:進度Widget最大高
- android:maxWidth:進度Widget最大寬
- android:minHeight:進度Widget最小高
- android:minWidth:進度Widget最小寬
- android:progress:設置進度的默認值传惠,0到max
- android:progressBackgroundTint:進度條的背景顏色
- android:progressTint:進度條的顏色
- android:secondaryProgress:定義二級進度值迄沫,0到max
(3)ProgressBar方法
- getMax():返回這個進度條的范圍的上限。
- getProgress():返回進度卦方。
- getSecondaryProgress():返回次要進度羊瘩。
- incrementProgressBy():指定增加的進度。為正數(shù)時進度增加盼砍;為負數(shù)時進度減少尘吗。
- isIndeterminate():指示進度條是否在不確定模式下。
- setIndeterminate():設置是否為不確定模式衬廷。
(4)系統(tǒng)提供ProgressBar樣式
- 水平進度條
<ProgressBar
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="200dp"
android:layout_height="10dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:max="100"
android:progress="60" />
- 普通大小的環(huán)形進度條
<ProgressBar
style="@android:style/Widget.ProgressBar.Inverse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" />
- 大環(huán)形進度條
<ProgressBar
style="@android:style/Widget.ProgressBar.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" />
- 小環(huán)形進度條
<ProgressBar
style="@android:style/Widget.ProgressBar.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" />
二摇予、自定義ProgressBar樣式
(1)自定義帶漸變色圓角的水平進度條
<ProgressBar
style="@android:style/Widget.ProgressBar.Horizontal"
android:layout_width="200dp"
android:layout_height="20dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:max="100"
android:progress="80"
android:progressDrawable="@drawable/progress_bar_bg" />
- 設置背景顏色和圓角
- 設置進度條漸變色和圓角
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<corners android:radius="10dp" />
<solid android:color="@color/white" />
</shape>
</item>
<item>
<clip>
<shape>
<corners android:radius="10dp" />
<gradient
android:angle="0"
android:endColor="@color/colorPrimary"
android:startColor="@color/colorAccent" />
</shape>
</clip>
</item>
</layer-list>
(2)自定義旋轉圖片加載
<ProgressBar
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:progressDrawable="@drawable/progress_bar_bg" />
- 設置旋轉圖片
- 設置圓形和旋轉角度
<?xml version="1.0" encoding="utf-8"?>
<animated-rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@mipmap/loading"
android:fromDegrees="0.0"
android:pivotX="50.0%"
android:pivotY="50.0%"
android:toDegrees="360.0" />
(3)自定義多張圖片播放動畫
- 設置為不確定模式
- indeterminateDrawable設置Drawable動畫
<ProgressBar
android:layout_width="80dp"
android:layout_height="80dp"
android:indeterminate="true"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:indeterminateDrawable="@drawable/progress_bar_bg" />
- 設置Drawable動畫
<?xml version="1.0" encoding="UTF-8"?>
<animation-list android:oneshot="false"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:duration="100" android:drawable="@mipmap/icon_run1" />
<item android:duration="100" android:drawable="@mipmap/icon_run2" />
<item android:duration="100" android:drawable="@mipmap/icon_run3" />
<item android:duration="100" android:drawable="@mipmap/icon_run4" />
<item android:duration="100" android:drawable="@mipmap/icon_run5" />
</animation-list>
三、Shape使用
(1)rectangle:矩形
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--填充顏色-->
<solid android:color="@color/colorPrimary" />
<!--圓角大小-->
<corners android:radius="10dp" />
<!--四個圓角的大小-->
<padding
android:bottom="12dp"
android:left="12dp"
android:right="12dp"
android:top="12dp" />
<!--邊框大小吗跋、顏色-->
<stroke
android:width="5dp"
android:color="@color/colorAccent" />
<!--漸變角度侧戴、漸變結束顏色、漸變起始顏色-->
<gradient
android:angle="0"
android:endColor="@android:color/black"
android:startColor="@android:color/white" />
</shape>
(2)oval:橢圓
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<!--填充顏色-->
<solid android:color="@color/colorPrimary" />
<!--漸變的XY軸起始位置跌宛,范圍0-1,0.5表示圓心-->
<!--漸變類型:線性漸變(linear)酗宋、放射漸變(radial)、掃描性漸變(sweep)-->
<gradient
android:centerX="0.5"
android:centerY="0.5"
android:endColor="@color/colorAccent"
android:startColor="@color/colorPrimary"
android:type="sweep" />
</shape>
(3)line:線
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<!--填充顏色的高度-->
<!--虛線間距寬度-->
<!--虛線寬度-->
<stroke
android:width="1dp"
android:color="@color/colorAccent"
android:dashWidth="4dp"
android:dashGap="3dp" />
<!--line的高度-->
<size android:height="3dp" />
</shape>
(4)ring:圓環(huán)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
android:thickness="10dp"
android:useLevel="false">
<!--thickness圓環(huán)寬度-->
<!--useLevel需要設置為false-->
<gradient
android:endColor="@color/colorPrimary"
android:startColor="@color/colorAccent"
android:type="sweep" />
</shape>