Android中shape的使用

来源:互联网 发布:网络摄像头平台 编辑:程序博客网 时间:2024/06/01 07:55

Android中的shape标签用于描述形状,可以在布局文件layout和选择器selector中使用,它有6个子标签,具体如下:

<?xml version="1.0" encoding="utf-8"?>    <shape xmlns:android="http://schemas.android.com/apk/res/android" >        <!-- 设置圆角效果 -->        <corners             android:radius="5dp"/>                               <!-- 设置背景渐变色 -->        <gradient             android:startColor="@color/red"                     android:endColor="@color/black"            android:centerColor="@color/white"            android:angle="-90"            android:gradientRadius="90"/>                <!-- 边距间隔 -->        <padding             android:left="10dp"            android:top="10dp"            android:right="10dp"            android:bottom="10dp"/>                <!-- 大小 -->        <size             android:width="20dp"            android:height="20dp"/>                <!-- 背景填充色 -->        <solid             android:color="@color/red"/>                <!--边框线 -->        <stroke             android:color="@color/black"            android:width="2dp"/>    </shape>
  1. shape:根节点 <shape>有一个shape属性,可以设置不同的形状
    1. android:shape="line" :设置shape为线形(包括实线、虚线)
    2. android:shape="rectangle":设置shape为矩形
    3. android:shape="oval":设置shape为椭圆形
    4. android:shape="ring":设置shape为环形
  2. corners子节点:设置圆角效果
    1. android:radius:圆角的半径
  3. gradient子节点:背景渐变色
    1. android:startColor:渐变起始色
    2. android:endColor:渐变结束色
    3. android:centerColor:渐变过程中中间的颜色
    4. android:angle:渐变的角度朝向(45的倍数),默认朝向为从左至右,每增加45度,则逆时针转动45度开始渐变
    5. android:gradientRadius:这个属性还不知道是什么意思
  4. padding子节点:边距,该标签的几个属性就比较常用比较简单了,就不描述了
  5. size子节点:大小,这个标签的属性也比较简单
  6. solid子节点:背景填充色
    1. android:color:背景颜色,设置该标签属性之后,gradient标签将不会起作用
  7. stroke子节点:线(可以设置控件的边框,也可以设置一条实线或虚线)
    1. android:color:线的颜色
    2. android:width:线的宽度
    3. android:dashGap:虚线间的间距
    4. android:dashWidth:每个虚线段的长度(当设置为虚线的时候,最好不要设置android:width属性)

一般比较常用的是边线,填充色,背景色这三个标签

如果要为某个控件设置背景边框、渐变色、填充色或者是通过View设置控件间的分割线,都可以使用shape配合selector来进行实现。


欢迎访问我的独立博客:http://ittiger.cn

0 0