Android:shape属性详解(图文并茂)
2014-12-31 11:31
435 查看
语法结构:
元素属性:
android:shape
Defines the type of shape. Valid values are:(定义这个类型的形状,变量值是:)
1.rectangle属性
可用于制作按钮等控件背景,如:常用圆角背景框、渐变色背景、透明背景层......;
![](https://img-blog.csdn.net/20141231105238437?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZ3Jvd2luZ190cmVl/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
如上图所示,只需设置solid属性颜色值为#60000000,即可为TextView设置半透明背景层了。
如果在TextView或者父容器中使用alpha=0.5,将会导致文字内容也呈现半透明效果,显然不是设计所需!
如果使用RelativeLayout布局,多使用一个半透明背景层View也能实现上图效果,但操作繁琐,不太理想!
2.line属性
可用于制作分隔线(渐变色分隔线)
3.ring属性
The following attributes are used only when
Dimension. The radius for the inner part of the ring (the hole in the middle), as a dimension value or dimension
resource.
Float. The radius for the inner part of the ring, expressed as a ratio of the ring's width. For instance, if
by 5. This value is overridden by
Dimension. The thickness of the ring, as a dimension value or dimension resource.
Float. The thickness of the ring, expressed as a ratio of the ring's width. For instance, if
overridden by
Boolean. "true" if this is used as a
This should normally be "false" or your shape may not appear.
Creates rounded corners for the shape. Applies only when the shape is a rectangle.创建圆角的形状。仅适用于当其形状是一个长方形。
attributes:
Dimension. The radius for all corners, as a dimension value or dimension
resource. This is overridden for each corner by the following attributes.
Dimension. The radius for the top-left corner, as a dimension value or dimension
resource.
Dimension. The radius for the top-right corner, as a dimension value or dimension
resource.
Dimension. The radius for the bottom-left corner, as a dimension value or dimension
resource.
Dimension. The radius for the bottom-right corner, as a dimension value or dimension
resource.
Note: Every corner must (initially) be provided a corner radius greater than 1, or else no corners are rounded. If you want specific corners to notbe rounded, a work-around is to use
set a default corner radius greater than 1, but then override each and every corner with the values you really want, providing zero ("0dp") where you don't want rounded corners.
Specifies a gradient color for the shape.指定一个渐变颜色的形状。
attributes:
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.
Float. The relative X-position for the center of the gradient (0 - 1.0).
Float. The relative Y-position for the center of the gradient (0 - 1.0).
Color. Optional color that comes between the start and end colors, as a hexadecimal value or color
resource.
Color. The ending color, as a hexadecimal value or color resource.
Float. The radius for the gradient. Only applied when
Color. The starting color, as a hexadecimal value or color resource.
Keyword. The type of gradient pattern to apply. Valid values are:
Boolean. "true" if this is used as a
Padding to apply to the containing View element (this pads the position of the View content, not the shape).适用于包含填充视图元素(这垫的位置,而不是观点内容的形状)
attributes:
Dimension. Left padding, as a dimension value or dimension resource.
Dimension. Top padding, as a dimension value or dimension resource.
Dimension. Right padding, as a dimension value or dimension resource.
Dimension. Bottom padding, as a dimension value or dimension resource.
The size of the shape.
attributes:
Dimension. The height of the shape, as a dimension value or dimension resource.
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
you can restrict scaling by setting the
A solid color to fill the shape.
attributes:
Color. The color to apply to the shape, as a hexadecimal value or color resource.
A stroke line for the shape.
attributes:
Dimension. The thickness of the line, as a dimension value or dimension resource.
Color. The color of the line, as a hexadecimal value or color resource.
Dimension. The distance between line dashes, as a dimension value or dimension
resource. Only valid if
Dimension. The size of each dash line, as a dimension value or dimension
resource. Only valid if
gradient -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle 是指从哪个角度开始变。
gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍。
另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。
solid -- 填充。
solid:实心,就是填充的意思
android:color指定填充的颜色
stroke -- 描边。
stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp"
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。
corners -- 圆角。
corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
<corners
android:topRightRadius="20dp" 右上角
android:bottomLeftRadius="20dp" 右下角
android:topLeftRadius="1dp" 左上角
android:bottomRightRadius="0dp" 左下角
/>
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角!
附上:颜色对照表链接:http://blog.sina.com.cn/s/blog_684a1d160100umuq.html
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | "oval" | "line" | "ring"] > <corners android:radius="integer" android:topLeftRadius="integer" android:topRightRadius="integer" android:bottomLeftRadius="integer" android:bottomRightRadius="integer" /> <gradient android:angle="integer" android:centerX="integer" android:centerY="integer" android:centerColor="integer" android:endColor="color" android:gradientRadius="integer" android:startColor="color" android:type=["linear" | "radial" | "sweep"] android:useLevel=["true" | "false"] /> <padding android:left="integer" android:top="integer" android:right="integer" android:bottom="integer" /> <size android:width="integer" android:height="integer" /> <solid android:color="color" /> <stroke android:width="integer" android:color="color" android:dashWidth="integer" android:dashGap="integer" /> </shape>
元素属性:
android:shape
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.(环形) |
可用于制作按钮等控件背景,如:常用圆角背景框、渐变色背景、透明背景层......;
如上图所示,只需设置solid属性颜色值为#60000000,即可为TextView设置半透明背景层了。
如果在TextView或者父容器中使用alpha=0.5,将会导致文字内容也呈现半透明效果,显然不是设计所需!
如果使用RelativeLayout布局,多使用一个半透明背景层View也能实现上图效果,但操作繁琐,不太理想!
2.line属性
可用于制作分隔线(渐变色分隔线)
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line" > <stroke android:width="4dp" android:color="@android:color/black" /> </shape>
3.ring属性
The following attributes are used only when
android:shape="ring":
android:innerRadius
Dimension. The radius for the inner part of the ring (the hole in the middle), as a dimension value or dimension
resource.
android:innerRadiusRatio
Float. The radius for the inner part of the ring, expressed as a ratio of the ring's width. For instance, if
android:innerRadiusRatio="5", then the inner radius equals the ring's width divided
by 5. This value is overridden by
android:innerRadius. Default value is 9.
android:thickness
Dimension. The thickness of the ring, as a dimension value or dimension resource.
android:thicknessRatio
Float. The thickness of the ring, expressed as a ratio of the ring's width. For instance, if
android:thicknessRatio="2", then the thickness equals the ring's width divided by 2. This value is
overridden by
android:innerRadius. Default value is 3.
android:useLevel
Boolean. "true" if this is used as a
LevelListDrawable.
This should normally be "false" or your shape may not appear.
<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.
Note: Every corner must (initially) be provided a corner radius greater than 1, or else no corners are rounded. If you want specific corners to notbe rounded, a work-around is to use
android:radiusto
set a default corner radius greater than 1, but then override each and every corner with the values you really want, providing zero ("0dp") where you don't want rounded corners.
<gradient>
Specifies a gradient color for the 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 to apply to the containing View element (this pads the position of the View content, not the 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>
The size of the shape.
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:scaleTypeto
"center".
<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>
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:dashWidthis set.
android:dashWidth
Dimension. The size of each dash line, as a dimension value or dimension
resource. Only valid if
android:dashGapis set.
gradient -- 对应颜色渐变。 startcolor、endcolor就不多说了。 android:angle 是指从哪个角度开始变。
gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍。
另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。
solid -- 填充。
solid:实心,就是填充的意思
android:color指定填充的颜色
stroke -- 描边。
stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp"
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。
corners -- 圆角。
corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
<corners
android:topRightRadius="20dp" 右上角
android:bottomLeftRadius="20dp" 右下角
android:topLeftRadius="1dp" 左上角
android:bottomRightRadius="0dp" 左下角
/>
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角!
附上:颜色对照表链接:http://blog.sina.com.cn/s/blog_684a1d160100umuq.html
相关文章推荐
- android:shape属性详解
- Android中shape属性详解
- Android shape属性详解
- Android中shape属性详解和selector和layer-list的说明
- Android中shape属性详解
- android:shape属性详解
- android:shape属性详解
- Android中shape属性详解
- Android中shape属性详解
- android shape.xml 属性详解
- Android shape文件属性详解
- android:shape属性详解
- android:shape属性详解
- Android中shape属性详解
- 2014-7-23 Android shape属性详解
- android关于shape的gradient属性详解
- Android之shape属性详解
- 实习入职第十六天:android:shape属性详解
- Android中shape属性详解
- Android中shape属性详解