<shape>是根节点,一般设置两个属性
xmlns:android
String. Required. Defines the XML namespace, which must be "http://schemas.android.com/apk/res/android"
. 这个是必须的,申明Android的命名空间 android:shape
Keyword. Defines the type of shape. Valid values are:(定义这个类型的形状,变量值是:) 这个也是必须的,表示你定义的图形是什么类型,圆,环,直线,长方形
Value | Desciption |
---|---|
"rectangle" | A rectangle (长方形)that fills the containing View. This is the default shape.(这个是默认的形状) |
"oval" | An oval (椭圆形)shape that fits the dimensions of the containing View. |
"line" | A horizontalline that spans the width of the containing View. This shape requires the <stroke> element to define the width of the line. |
"ring" | A ring shape. |
下面是子节点:
第一个子节点:corners <corners>
Creates rounded corners for the shape. Applies only when the shape is a rectangle.创建圆角的形状。仅适用于当其形状是一个长方形。 这个其实说的是:当定义的形状是长方形的时候,长方形左右上下四个边是圆角的,说简单点就是四个角,值越大,角越圆
attributes:
android:radius
Dimension. The radius for all corners, as a dimension value or dimension resource. This is overridden for each corner by the following attributes. 一般用这个属性 就可以了,下面的四个属性就是详细的去定义了 android:topLeftRadius
Dimension. The radius for the top-left corner, as a dimension value or dimension resource. android:topRightRadius
Dimension. The radius for the top-right corner, as a dimension value or dimension resource. android:bottomLeftRadius
Dimension. The radius for the bottom-left corner, as a dimension value or dimension resource. android:bottomRightRadius
Dimension. The radius for the bottom-right corner, as a dimension value or dimension resource. 第二个子节点:gradient <gradient>
Specifies a gradient color for the shape.指定一个渐变颜色的形状。 这个属性是为了 定义的shape填充颜色的,如果把起始颜色值和结束颜色值设置为一样的,就应该没有渐变了
attributes:
android:angle
Integer. The angle for the gradient, in degrees. 0 is left to right, 90 is bottom to top. It must be a multiple of 45. Default is 0. 这个其实是决定渲染方向,是从左到右,从右到左,从上到下,从下到上, android:centerX
Float. The relative X-position for the center of the gradient (0 - 1.0). android:centerY
Float. The relative Y-position for the center of the gradient (0 - 1.0). android:centerColor
Color. Optional color that comes between the start and end colors, as a hexadecimal value or color resource. android:endColor
Color. The ending color, as a hexadecimal value or color resource. android:gradientRadius
Float. The radius for the gradient. Only applied when android:type="radial"
. android:startColor
Color. The starting color, as a hexadecimal value or color resource. android:type
Keyword. The type of gradient pattern to apply. Valid values are:
Value | Description |
---|---|
"linear" | A linear gradient. This is the default. |
"radial" | A radial gradient. The start color is the center color. |
"sweep" | A sweeping line gradient. |
android:useLevel
Boolean. "true" if this is used as a LevelListDrawable
. 第三个子节点:padding <padding>
Padding to apply to the containing View element (this pads the position of the View content, not the shape).适用于包含填充视图元素(这垫的位置,而不是观点内容的形状) 定义的shape 有填充间距,这个应该很好理解,只的是包裹的内容本身与形状的间距,不是形状自身
attributes:
android:left
Dimension. Left padding, as a dimension value or dimension resource. android:top
Dimension. Top padding, as a dimension value or dimension resource. android:right
Dimension. Right padding, as a dimension value or dimension resource. android:bottom
Dimension. Bottom padding, as a dimension value or dimension resource. 第四个子节点:size <size>
The size of the shape. 定义形状的大小,是指形状本身的大小宽和高,这个跟后面的那个stroke节点有点混,stroke是指线条的宽和高,指的是描边
attributes:
android:height
Dimension. The height of the shape, as a dimension value or dimension resource. android:width
Dimension. The width of the shape, as a dimension value or dimension resource.
Note: The shape scales to the size of the Container View proportionate to the dimensions defined here, by default. When you use the shape in an ImageView
, you can restrict scaling by setting the android:scaleType
to "center"
.
第五个子节点:solid <solid>
A solid color to fill the shape.
attributes:
android:color
Color. The color to apply to the shape, as a hexadecimal value or color resource. 第六个子节点:stroke <stroke>
A stroke line for the shape. 这个解释应该就是字面的意思,线条的厚度,
attributes:
android:width
Dimension. The thickness of the line, as a dimension value or dimension resource. android:color
Color. The color of the line, as a hexadecimal value or color resource. android:dashGap
Dimension. The distance between line dashes, as a dimension value or dimension resource. Only valid if android:dashWidth
is set. android:dashWidth
Dimension. The size of each dash line, as a dimension value or dimension resource. Only valid if android:dashGap
is set.