android shape使用总结

今天使用到shape,这个里面有很多属性,在这里我记录一下各个属性的使用的情况以及所代表的意思

    <?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>

上面这段就是shape使用的格式,来看一下如何使用:

<shape>
定义这是一个GradientDrawable,必须作为根元素。
android:shape 
定义shape的值,必须是下面的之一:
"rectangle"     矩阵,这也是默认的shape
"oval"        椭圆
"line"        一条水平的直线。这种shape必须使用 <stroke> 元素来定义这条线的宽度
"ring"        圆环
下面的属性只有当 android:shape="ring"才使用:
android:innerRadius
    尺寸。 内环的半径。一个尺寸值(dip等等)或者一个尺寸资源。
android:innerRadiusRatio
    Float类型。这个值表示内部环的比例,例如,如果android:innerRadiusRatio = " 5 ",那么内部的半径等于环的宽度除以5。这个值会被android:innerRadius重写。 默认值是9。
android:thickness
    尺寸。环的厚度,是一个尺寸值或尺寸的资源。
android:thicknessRatio
    Float类型。厚度的比例。例如,如果android:thicknessRatio= " 2 ",然后厚度等于环的宽度除以2。这个值是被android:innerRadius重写, 默认值是3。
android:useLevel
    Boolean类型。如果用在 LevelListDrawable里,那么就是true。如果通常不出现则为false。
<corners>
为Shape创建一个圆角,只有shape是rectangle时候才使用。
android:radius
    Dimension。圆角的半径。会被下面每个特定的圆角属性重写。
android:topLeftRadius
    Dimension。top-left 设置左上角的半径
android:topRightRadius
    Dimension。top-right 设置右上角的半径
android:bottomLeftRadius
    Dimension。 设置右下角的半径
android:bottomRightRadius
    Dimension。设置左下角的半径
<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>
内容与视图边界的距离
android:left
Dimension。左边填充距离.
android:top
Dimension。顶部填充距离.
android:right
Dimension。右边填充距离.
android:bottom
Dimension。底部填充距离.

<size>
这个shape的大小。
android:height
Dimension。这个shape的高度。
android:width
Dimension。这个shape的宽度。
 注意:默认情况下,这个shape会缩放到与他所在容器大小成正比。当你在一个ImageView中使用这个shape,你可以使用 android:scaleType="center"来限制这种缩放。
<solid>
填充这个shape的纯色
android:color
Color。颜色值,十六进制数,或者一个Color资源

<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表示之间隔开的距离,
使用别人的一段代码:
button_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- 填充 -->
    <solid android:color="#ff9d77" /> <!-- 定义填充的颜色值 -->

    <!-- 描边 -->
    <stroke
        android:width="2dp"
        android:color="#fad3cf" /> <!-- 定义描边的宽度和描边的颜色值 -->

    <!-- 圆角 -->
    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" /> <!-- 设置四个角的半径 -->

      <!-- 间隔 -->
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" /> <!-- 设置各个方向的间隔 -->

</shape>

button_pressed_bg.xml的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- 渐变 -->
    <gradient
        android:endColor="#FFFFFF"
        android:gradientRadius="50"
        android:startColor="#ff8c00"
        android:type="radial" />

    <!-- 描边 -->
    <stroke
        android:dashGap="3dp"
        android:dashWidth="5dp"
        android:width="2dp"
        android:color="#dcdcdc" />

    <!-- 圆角 -->
    <corners android:radius="5dp" />

    <!-- 间隔  -->
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />

</shape>

如何使用,看下面的代码:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/button_pressed_bg" android:state_pressed="true"></item>
    <item android:drawable="@drawable/button_bg"></item>

</selector>

就是这样。

时间: 2024-08-06 16:04:49

android shape使用总结的相关文章

[转]Android Shape渲染的使用(经典,学习研究不后悔)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://mzh3344258.blog.51cto.com/1823534/1215749 感觉好久都没有写博文了,感觉自己变懒了,真对不起…-_-…   也有部分原因是因为我想写的东 西网上已经有了,再加上还有很多方面小马我也正在学习,所以….这段时间一直暂停更新我的博客文 章,看到博客的访问量一天天的增加,很开心 ...O_O...这一阵子也看了各种各样的书籍,技 术类的.非技术类的

android shape

shape使用.渐变色.分割线.边框.半透明.半透明阴影效果. http://www.tuicool.com/articles/Q7Vree <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=["rectangle" | &

Android Shape画圆,矩形

画圆环代码如下: 画圆环,外边的边界宽度大一点即可: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" android:useLevel="false" > <solid and

android shape的使用(转)

在Android程序开发中,我们经常会去用到Shape这个东西去定义各种各样的形状. shape用于设定形状,可以在selector,layout等里面使用,有6个子标签,各属性如下: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape=&quo

android shape图形优化Button效果

android shape可以让我们通过定义xml文件的方式创建图形,当然只能实现一些比较简单的图形(圆形,矩形,椭圆,线段),但是已经相当不错了,通过shape创建的图形作为控件的背景已经基本可以满足我的简单需求了,而且通过shape创建的图形可以适配各种屏幕. 下面就用shape定义的图形来优化Button的整体效果. 定义主布局文件activity_main.xml: 1 <RelativeLayout xmlns:android="http://schemas.android.co

Android shape的xml文件

Android shape的xml文件可以写不同形状.背景.边框.圆角等等效果,可以代替不少. 9图片的使用,缩小资源文件的大小.下面看一下shape可以包含的内容有哪些. 1 <?xml version="1.0" encoding="utf-8"?> 2 <shape 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 android:shape=[&

android shape.xml 属性详解

转载源:http://blog.csdn.net/harvic880925/article/details/41850723 一.简单使用 刚开始,就先不讲一堆标签的意义及用法,先简单看看shape标签怎么用. 1.新建shape文件 首先在res/drawable文件夹下,新建一个文件,命名为:shape_radius.xml 内容是这样的:(先不需要理解,先看shape怎么用) [html] view plaincopy <?xml version="1.0" encodin

Android - shape不完整的圆环(ring)

shape不完整的圆环(ring) 本文地址: http://blog.csdn.net/caroline_wendy Android不仅可以画圆环(ring), 也可以使用属性"android:thicknessRatio", 画不完整的圆环. 把thicknessRatio属性值设为浮点小数, 如1.9, 即可以得到不完整的圆环. 代码: <?xml version="1.0" encoding="utf-8"?> <sha

Android - shape圆形画法(oval)

shape圆形画法(oval) 本文地址: http://blog.csdn.net/caroline_wendy 1. 创建一个文件夹drawable, 用于存放xml类型的图片资源; 2. 在drawable中建立一个shape标签的文件: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/an