自定义view shape控件的详解

41 篇文章 2 订阅
27 篇文章 0 订阅

自定义view shape控件的详解

一、形状

shape属性指定基本形状,允许的值有:rectangle(矩形),oval(椭圆),line(线条), ring(环)。默认的值是矩形,下面的代码定义了一个矩形:

<?xml version="1.0" encoding="utf-8"?>

<shape android:shape="rectangle"
    xmlns:android="http://schemas.android.com/apk/res/android" >
</shape>

二、颜色渐变 gradient

1/属性:
  • startcolor: 起始颜色
  • centercolor : 中间色(过渡色)
  • endcolor: 结束色

可以允许设置两次渐变

2.渐变角度:

angle: 默认0值为向右;180向左;90自下而上;设置为270自上而下,以此类推。注意:必须是45的倍数。

3.渐变类型:type

type设置渐变类型,默认是linear(线性渐变),如果设置为radial(放射/径向渐变),则必须同时设置gradientRadius属性,该属性指定渐变半径,注意:这个半径并不是Dimension,不接受dp等单位,只能设置数字。此外还可以设置一个比较有意思的方式:sweep(扫描渐变)

centerX、centerY两个属性用于设置渐变的中心点位置,仅当渐变类型为放射渐变时有效,类型为分数或小数,不接受Dimension。默认值是0.5,有效值是0.0~1.0,超出该范围后会看不出渐变效果。

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

    <!--纯色填充-->
    <solid android:color="#DFE8DF"/>

    <!--设置圆角-->
    <corners android:bottomLeftRadius="10dp"
        android:topLeftRadius="10dp"/>

    <!--渐变色-->
    <gradient android:startColor="#14EC14"
        android:angle="40"
        android:centerColor="#4BC64B"
        android:endColor="#367143"
        android:type="linear"/>
</shape>

三、solid设置纯色填充

只有color这一个属性来进行填充

四、指定尺寸

使用width、height分别设置宽高,类型为Dimension。

注意:Shape文件即使指定了size,默认情况下在使用时也会缩放到其容器的大小。如果在ImageView中使用,可以使用android:scaleType进行缩放的限制。

五、stroke描边

当定义的形状为line(线条)时,该属性为必选项,设置线条的样式。当形状为其他形状时,该元素起描边的作用。

width指定边框的宽度(Dimension),color指定边框颜色,只接受color类型。

我们还可以设置虚线边框:使用dashGap设置虚线之间的间隔,dashWidth设置每根虚线’-‘的长度

仅当这两个属性都设置时虚线效果才生效。

六、coners圆角

七、padding设置边距

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值