【Android】自定义View-为View加上边框

一、概述
我们在工作中经常会因为产品经理的需求自定义一个界面,这个界面可能是对系统控件的扩展或者完全是一个新的东西,这时候我们就需要根据需求来自定义一个。下面我将对TextView进行简单的扩展,我需要自定义一个自带边框的View.

这里写图片描述

二、知识说明

1. 如果我们需要重新绘制View的显示内容,那么我们需要重写onDraw()方法。
2. 如果我们需要重新测量View的显示大小,那么我们需要重写onMeasure()方法。
3. 如果需要设置自定义attrs属性,一般会把自定义的属性写在declare-styleable中。

另外自定义的View都需要实现三个基本的构造函数,每个构造函数分别调用基类的构造函数。

这里写图片描述

三、实现示例

我们简单分析一下需求,因为我需要在TextView原生控件的基础上面添加一个边框,那么我需要创建一个新的类继承自TextView,新类我自定义为CustomView。我需要重新绘制TextView的视图内容,所以我需要重写onDraw()方法。

这里写图片描述

需要注意的是super.onDraw(canvas)方法来实现原生控件的功能,我们必须在调用super.onDraw()方法之前实现自己的视图绘制。我这里创建了两个画笔,一个画笔设置为蓝色,绘制整个矩形控件。第二个画笔设置为黄色,缩进10dp绘制一个内部的矩形,这样子就实现了一个蓝色的边框。

四、布局代码

这里写图片描述

五、运行效果

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值