shape的简单用法

时间:2023-03-09 13:39:24
shape的简单用法

shap节点-----------------------------------
定义shape的值,必须是下面的之一:
"rectangle" 矩阵,这也是默认的shape
"oval"    椭圆
"line"     一条水平的直线。这种shape必须使用 <stroke> 元素来定义这条线的宽度
"ring"    圆环
android:useLevel
Boolean类型。如果用在 LevelListDrawable里,那么就是true。如果通常不出现则为false。
下面的属性只有当 android:shape="ring"才使用:
android:innerRadius
尺寸。 内环的半径。一个尺寸值(dip等等)或者一个尺寸资源。
android:thickness
尺寸。环的厚度,是一个尺寸值或尺寸的资源

corners节点--------------------------------------------
<corners>
为Shape创建一个圆角,只有shape是rectangle时候才使用。
android:radius
Dimension。圆角的半径。会被下面每个特定的圆角属性重写。
android:topLeftRadius
Dimension。top-left 设置左上角的半径
android:topRightRadius
Dimension。top-right 设置右上角的半径
android:bottomLeftRadius
Dimension。 设置右下角的半径
android:bottomRightRadius
Dimension。设置左下角的半径

gradient节点--------------------------------
<gradient>
指定这个shape的渐变颜色。
android:angle
Integer。渐变的角度。 0 代表从 left 到 right。90 代表bottom到 top。必须是45的倍数,默认为0
android:centerX
Float。渐变中心的相对X坐标,在0到1.0之间。
android:centerY
Float。渐变中心的相对Y坐标,在0到1.0之间。
android:centerColor
Color。可选的颜色值。基于startColor和endColor之间。
android:endColor
Color。 结束的颜色。
android:gradientRadius
Float 。渐变的半径。只有在 android:type="radial"才使用
android:startColor
Color。开始的颜色值。
android:type
Keyword。渐变的模式,下面值之一:
"linear" 线形渐变。这也是默认的模式
"radial" 辐射渐变。startColor即辐射中心的颜色
"sweep" 扫描线渐变。
android:useLevel
Boolean。如果在LevelListDrawable中使用,则为true

padding节点-------------------------------------
<padding>
内容与视图边界的距离
android:left
Dimension。左边填充距离.
android:top
Dimension。顶部填充距离.
android:right
Dimension。右边填充距离.
android:bottom
Dimension。底部填充距离.

size节点-------------------------------------------
<size>
这个shape的大小。
android:height
Dimension。这个shape的高度。
android:width
Dimension。这个shape的宽度。
注意:默认情况下,这个shape会缩放到与他所在容器大小成正比。当你在一个ImageView中使用这个shape,
你可以使用 android:scaleType="center"来限制这种缩放。

solid节点----------------------------------------------
<solid>
填充这个shape的纯色
android:color
Color。颜色值,十六进制数,或者一个Color资源

stroke节点-------------------------------------

<stroke>
这个shape使用的笔画,当android:shape="line"的时候,必须设置改元素。
android:width
   Dimension。笔画的粗细。
android:color
Color。笔画的颜色
android:dashGap
Dimension。每画一条线就间隔多少。只有当android:dashWidth也设置了才有效。
android:dashWidth
Dimension。每画一条线的长度。只有当 android:dashGap也设置了才有效。
android:dashGap和android:dashWidth设置这条线为虚线的,其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离,

代码---------------------------------
<!--圆环-->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="ring"
//半径
android:innerRadius="20dp"
//环的宽度
android:thickness="1dp"
android:useLevel="false">
//圆环的填充色
<solid android:color="#412684"/>
//边界色
<stroke android:color="#624509"
android:width="3dp"/>

</shape>

<!--线-->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
//边界色
<stroke android:color="@android:color/black"
//边界色的高度
android:width="1dp"/>

</shape>

<!--圆角矩形and椭圆-->
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"|oval
android:useLevel="false"
>
//填充色
<solid android:color="@android:color/holo_blue_bright"/>
//角度
<corners android:radius="20dip"/>
//边界
<stroke android:width="1dp"
/>

</shape>

<!--矩形-->
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:useLevel="false">
//填充色
<!--<solid android:color="@android:color/black"/>-->
//边界
<stroke android:color="@android:color/black"
android:width="1dp"/>
</shape>