android中layer-list的使用: layer-list中的item是按照顺序从下往上叠加的(先定义的item在下面,后面的在上面)
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:drawable="@drawable/shape_progress_bar_white_bg" />
<item android:id="@android:id/progress">
<scale
android:drawable="@drawable/shape_progress_bar_bg"
android:scaleWidth="100%" />
</item>
</layer-list>
shape用来定义背景颜色样式,属性: Corners:定义圆角
<corners //定义圆角
android:radius="dimension" //全部的圆角半径
android:topLeftRadius="dimension" //左上角的圆角半径
android:topRightRadius="dimension" //右上角的圆角半径
android:bottomLeftRadius="dimension" //左下角的圆角半径
android:bottomRightRadius="dimension" /> //右下角的圆角半径
solid :用以指定内部填充色
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#ffff00"/>
</shape>
gradient:用以定义渐变色,可以定义两色渐变和三色渐变,及渐变样式
<gradient
android:type=["linear" | "radial" | "sweep"] //共有3中渐变类型,线性渐变(默认)/放射渐变/扫描式渐变
android:angle="integer" //渐变角度,必须为45的倍数,0为从左到右,90为从上到下
android:centerX="float" //渐变中心X的相当位置,范围为0~1
android:centerY="float" //渐变中心Y的相当位置,范围为0~1
android:startColor="color" //渐变开始点的颜色
android:centerColor="color" //渐变中间点的颜色,在开始与结束点之间
android:endColor="color" //渐变结束点的颜色
android:gradientRadius="float" //渐变的半径,只有当渐变类型为radial时才能使用
android:useLevel=["true" | "false"] /> //使用LevelListDrawable时就要设置为true。设为false时才有渐变效果
例子: progress.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/background"
android:drawable="@drawable/shape_progress_bar_white_bg" />
<item android:id="@android:id/progress">
<scale
android:drawable="@drawable/shape_progress_bar_bg"
android:scaleWidth="100%" />
</item>
</layer-list>
shape_progress_bar_white_bg.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/progress"
android:layout_height="8dp"
android:layout_width="212dp"
>
<shape android:shape="rectangle">
<gradient android:type="linear" android:startColor="@color/white" android:endColor="@color/white" android:angle="180"/>
<corners android:radius="10dp" />
</shape>
</item>
</layer-list>
shape_progress_bar_bg.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@android:id/progress"
android:layout_height="8dp"
android:layout_width="212dp"
>
<shape android:shape="rectangle">
<gradient android:type="linear" android:startColor="#FF0e95b9" android:endColor="#FF95e3fc" android:angle="180"/>
<corners android:radius="10dp" />
</shape>
</item>
</layer-list>
使用:
<ProgressBar
android:id="@+id/download_progress_bar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="80px"
android:layout_gravity="center_horizontal"
android:layout_marginTop="5px"
android:background="@drawable/shape_progress_background"
android:progress="70"
android:max="100"
android:progressDrawable="@drawable/progress" />
参考:https://www.cnblogs.com/MianActivity/p/5867776.html
|