android 自定义shape

本文深入探讨了自定义drawable的使用方式,包括oval、ring、rectangle和line四种图形的创建与配置,详细解析了各个关键属性的作用,并通过实例展示了如何实现圆形、圆环、矩形和线段的定制化设计。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候我们会需要自定义drawable,用来当一些文字的背景图片,使用方式为在drawable文件夹下新建xml文件


1.自定义drawable中的图形可以为oval(椭圆),ring(圆环),rectangle(长方形),line(线段)


2.首先我们看下rectangle

        

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

    <corners
        android:radius="30dip"/>
    <solid android:color="#000000"/>

    <stroke android:color="#ffffff"
        android:width="4dp"
        android:dashWidth="10dp"
        android:dashGap="3dp"/>
    <size
        android:width="200dp"
        android:height="400dp"/>

    <gradient
        android:startColor="#ff00ff"
        android:endColor="#000000"
        android:type="linear"
        android:centerX="0.5"
        android:centerColor="#ffffff"
        android:centerY="0.5"
        android:angle="45"/>

</shape>


 

解释一下上面的属性:1.coners:设置的是四个角的半径,设置之后就圆角矩形了

     2.solid : 填充图形的颜色

     3.stroke:设置的是边框,其中color是边框的颜色,width是边框的宽度

                    dashWidth表示横线的宽度,dashGap:表示为隔开的距离,可以看到上面

上传的图片边框是一段一段,就是使用上面俩个属性的效果

     4.设置的是图形的大小

     5.gradient:这个是设置渐变色的,startColor为开始的颜色,centerColor为中间的颜色

endColor为结束时的颜色,centerX,centerY是设置中间颜色从哪开始取值范围为

(0~1),angle为角度,这个你们可以自己去设置为0,45,90,去体会一下

                 

上面这些是我看英文文档中的,建议大家直接去看英文文档,链接:英文文档

2.ring(圆环)

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:useLevel="false"
    android:innerRadius="50dp"
    android:thickness="20dp"
    >

    <solid
        android:color="#ff00ff"/>
    <size
        android:width="150dp"
        android:height="150dp"/>
    <stroke
        android:width="3dp"
        android:color="#000000"
        />
</shape>


ring这个我感觉用到的不多,如果需要用到大小圆就另说了,其他用oval来代替

大部分属性在前面介绍过来,介绍几个前面没有介绍过的

1.useLevel:false (默认值为true,这有把useLevel设置为false,圆环才能显示出来,具体为什么没看懂文档)

2.thickNess:为外圆环的厚度

3.innerRadius为内圆环的半径,如果不设置上面这俩个值会有默认值

 

oval 用法与rectangle差不多,就不细讲了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值