超级简单的Android镂空文本方法

今年4月的时候,跟着大佬做一个大需求,手中分到一个比较新奇的小需求点:需要做一个镂空的Toast

话不多说,直奔主题~

项目描述:

1.相机类app,toast需要在预览界面展示出来;

2.toast颜色纯白,有微微透明度。

探路过程:

1.查询各位前辈的实现方法,给自己来点启发,看完觉得都有点复杂,于是准备自己着手写一个;

2.镂空文本最重要就是使用图层叠加,从重叠区域着手;

3.学习Android Paint Xfermode,可以控制叠加区域的内容展示(https://www.cnblogs.com/libertycode/p/6290497.html);

4.由于预览区域会有全是白色的情况,我们的设计还要求,镂空的文本后面还需要有一层背景,实现这个要求的方法是:

  叠加一个有透明度的背景图层,图层叠加的时候,将这个背景图层放在最下面就好;

代码实现思路:

1.继承TextView,重写onDraw方法;(也可以继承View,开销小,但是继承View自己要实现的东西太多,于是就使用了TextView);

2.在onDraw方法中,获取TextView的Paint,调用 

paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT)),

 就可以在文字绘制的时候,擦除掉背景与文字重叠的区域,文本镂空就完成啦;

3.给镂空文本添加有透明度背景:

  镂空文本绘制完成以后,在cavas上绘制一个阴影图层,自己new一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值