shape样式开发详解
2021-04-26 本文已影响0人
瑟闻风倾
shape的作用:用于自定义样式,实现渐变、圆角,边框等效果
1. shape标签属性
在 drawable 文件夹下新建.xml资源文件,然后根节点改为shape
属性名 | 作用 | 示例 | 备注 |
---|---|---|---|
solid | 设置填充颜色 | ||
padding | 设置内容和控件边缘的间隙 | ||
corners | 设置圆角 | ||
gradient | 梯度,用来设置渐变效果 | ||
stroke | 设置边框 | $2000 | $3000 |
size | 设置大小 | $3000 | $3000 |
(1) solid:color属性值可以是 #00a9e2 这种当场选择的,也可以是在color资源文件中事先定义好的
<solid android:color="#00a9e2"/>
<solid android:color="@color/blue"/>
(2) padding:padding属性就和控件里的padding一样,在shape中设置了padding,则控件设置的padding属性就会自动生效
<padding android:bottom="20dp"/>
(3) corners:如果设置半径大于等于控件的一半,则两个圆角就相当于合并成一个半圆了
<corners android:radius="6dp"/>
<corners android:topLeftRadius="8dp"/>
(4) gradient:设置里面的startColor,centerColor和endColor属性,系统就会帮你实现颜色的平滑过渡,从而实现渐变
<gradient android:startColor="@color/blue_1"
android:endColor="@color/blue_2"/>
- angle属性:系统默认是从左往右填充颜色的,可以用angle属性控制填充的角度,但是要注意angle里面只能填45,90,135,-45等等,这些45的倍数的数字,否则角度无效
- type属性:在type属性中有3中方式可选,分别是linear、radial和sweep;gradientRadius表示扩散半径
- linear线性渐变:也就是默认情况下的type
- radial放射性渐变:从中间向四周扩散
- sweep顺时针渐变:从0度开始顺时针扫过一圈
android:type="radial"
android:gradientRadius="24dp"
(5) stroke:dashGap设置虚线框效果中空隙的长度;dashWidth设置虚线框效果中每一段的宽度
<stroke android:color="@color/blue_1"
android:width="4dp"
android:dashGap="6dp"
android:dashWidth="8dp"/>
(6) solid:大小