Android中自定义Shape小结

在开发中,我们经常会去用到Shape去定义各种各样的形状,很多时候是作为背景使用的 . 这里就作为TextView的背景来逐个展示shape的一些属性 .

  • solid 一般是填充颜色
    使用方式 : <solid android:color="#00ffff"/>
    使用效果 : 如图一所示的填充颜色
  • stroke 描边
    使用方式 :
    <stroke android:width="1dp" android:color="#ff00ff"/>
    描边也可以是虚线 , 其两个属性如下:
        android:dashGap="3dp"  
        android:dashWidth="5dp"  
    

使用效果 : 如图一 , 紫色描边 , 且边的宽度为1dp

  • corners 圆角
    使用方式 : <corners android:radius="5dp"/>
    android:radius为角的弧度,值越大角越圆。
    如果四个角弧度一样 , 可以这样设置 :
    android:Radius=“20dp” 设置四个角的半径
    我们还可以把四个角设定成不同的角度 , 例如:
    android:topLeftRadius=“10dp” 设置左上角的半径
    android:topRightRadius=“20dp” 设置右上角的半径
    android:bottomLeftRadius=“30dp” 设置右下角的半径
    android:bottomRightRadius=“40dp” 设置左下角的半径
    使用效果 : 如图一 , 四个弧度不同

这里写图片描述

  • gradient 渐变
    android:startColor和android:endColor分别为起始和结束颜色,
    android:angle是渐变角度,必须为45的整数倍。
    另外渐变默认的模式为android:type=“linear”,即线性渐变,
    可以指定渐变为径向渐变,android:type=“radial”,径向渐变需要指定半径android:gradientRadius=“50”。
    angle值对应的位置如图:
    这里写图片描述
  • padding 内容相对边界的距离
    可以设置上下左右四个方向的间隔
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <corners
        android:radius="10dp"/>
    <solid android:color="#00ffff"/>
    <stroke
        android:width="1dp"
        android:color="#ff00ff"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <corners
        android:radius="10dp"/>
    <solid android:color="#00ffff"/>
    <stroke
        android:width="1dp"
        android:color="#ff00ff"/>

    <padding
        android:left="15dp"
        android:right="15dp"/>
</shape>

两种方式的效果如图所示:
这里写图片描述
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值