【Android】shape相关属性详解

1. gradient渐变

<gradient
  android:angle="integer"
  android:centerX="Float"
  android:centerY="Float"
  android:centerColor="integer"
  android:startColor="color"
  android:endColor="color"
  android:gradientRadius="integer"
  android:type=["linear"|"radial"|"sweep"]
  android:usesLevel=["true"|"false"]
  />
  • angle:角度,当 android:type=“linear”时有效
  • centerX:Float。渐变色中心的 X 相对位置( 0-1.0 )。当 android:type=“linear”时无效
  • centerY:Float。渐变色中心的 Y 相对位置( 0-1.0 )。当 android:type=“linear”时无效
  • centerColor:color。可选的颜色,出现在 start 和 end 颜色之间。
  • gradientRadius:Float。渐变色的半径。当 android:type=“radial” 时有效。
  • startcolor:开始的颜色
  • endcolor:结束的颜色
  • type:Keyword 。渐变色的样式。有效值为:
    "linear":线性渐变,默认值
    "radial":环形渐变。 start 颜色是处于中间的颜色
    "sweep":sweep 渐变
  • useLevel:Boolean。“ true ”表示可以当作 LevelListDrawable 使用

1.1 android:type="linear"

例如:在res/drawable下建立一个gradient_shape.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <gradient 
        android:startColor="#fff"
        android:endColor="#000"
        android:centerColor="#dc143c"
        android:angle="45"/>

</shape>

在res/layout里新建一个activity_gradient.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/back_shape"
    android:orientation="vertical" >

</LinearLayout>

截图:


这里写图片描述
  • android:startColor="#fff"起始颜色为白色
  • android:endColor="#000"结束颜色为黑色
  • android:centerColor="#dc143c"中间色为红色
  • android:angle="45"渐变角度为45度,从左下到右上

1.2 android:type="radial"

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <gradient 
        
        android:startColor="#fff"
        android:endColor="#000"
        android:centerColor="#dc143c"
        android:gradientRadius="90"
        android:type="radial"
        />

</shape>

截图:


这里写图片描述

这里颜色渐变的是里向外渐变

  • android:startColor="#fff"起始(最里)颜色为白色
  • android:endColor="#000"结束(最外)颜色为黑色
  • android:centerColor="#dc143c"中间颜色为红色
  • android:gradientRadius="90"渐变半径为90
  • android:type="radial"类型为环形渐变

1.3 android:type="sweep"

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <gradient 
        
        android:startColor="#fff"
        android:endColor="#000"
        android:centerColor="#dc143c"
        android:centerX="0"
        android:centerY="0"
        android:type="sweep"
        />

</shape>

截图:


这里写图片描述
  • android:startColor="#fff"起始颜色为白色
  • android:endColor="#000"结束颜色为黑色
  • android:centerColor="#dc143c"中间色为红色
  • android:centerX="0"渐变色中心的 X 相对位置( 0-1.0 )。当android:type=“linear”时无效
  • android:centerY="0"渐变色中心的 Y 相对位置( 0-1.0 )。当 android:type=“linear”时无效
  • android:type="sweep"延伸类型

2 . corners 圆角

<corners
  android:radius="integer"
  android:topLeftRadius="integer"
  android:topRightRadius="integer"
  android:bottomLeftRadius="integer"
  android:bottomRightRadius="integer"
  />

corners指的是圆角

  • radius:半径,会被下面的特性覆盖。
  • topLeftRadius:左上圆角半径。
  • topRightRadius:右上圆角半径。
  • bottomLeftRadius:左下圆角半径。
  • bottomRightRadius:右下圆角半径。

3 . padding各个方向的间距

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

4 . size尺寸大小

 <!-- 大小 -->
    <size
        android:width="100dp"
        android:height="50dp"/><!-- 宽度和高度 -->

5 . solid背景色填充

<!-- 填充 -->
    <solid
        android:color="@android:color/white"/>

6 . stroke描边

<!-- 描边 -->
     <stroke
        android:width="2dp"
        android:color="#a9a9a9"
        android:dashWidth="2dp"
        android:dashGap="1dp"/>
  • android:width="2dp" 设置边边的宽度
  • android:color="#a9a9a9" 设置边边的颜色
  • android:dashWidth="2dp" 设置虚线的宽度
  • android:dashGap="1dp" 设置虚线的间隔宽度
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,277评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,689评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,624评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,356评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,402评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,292评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,135评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,992评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,429评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,636评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,785评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,492评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,092评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,723评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,858评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,891评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,713评论 2 354

推荐阅读更多精彩内容