android 图片圆角 遮罩_Android 实现一个通用的圆角布局

本文介绍如何在Android中创建一个通用的圆角布局,适用于处理图片和文字的圆角需求。通过自定义`RoundRelativeLayout`,利用`canvas.clipPath()`和`canvas.drawPath()`方法实现抗锯齿的圆角效果,同时处理了Android P上的兼容性问题。
摘要由CSDN通过智能技术生成

原标题:Android 实现一个通用的圆角布局

前言

我们在平时的开发中,经常会遇到圆角需求,比如下图

一般的实现方法是上面的图片左上和右上设置圆角,下面的文字部分左下和右下设置圆角,而 Glide 默认是不支持指定位置设置圆角的,需要通过自定义 Transformation 实现,而 GIF 动图也是不支持圆角的。

有些同学说了,加个遮罩不就行了吗?

先不说会不会被视觉小姐姐喷:一个圆角都做不了,还要我给你做遮罩图!

我自己本身也是无法接受这种实现方式的…

那么,实现一个通用的圆角布局,不就可以以不变应万变了吗?

正文

如何将 layout 剪裁为圆角?

我们知道 view 绘制时会调用 draw 方法,draw 方法中有大量逻辑,直接复写该方法是不现实的,看下 draw 方法中的一段注释

Draw traversal performs several drawing steps whichmust be executedinthe appropriate order: 1. Draw the background // drawBackground 2. If necessary, save the canvas' layers to prepare for fading 3. Draw view's content // onDraw 4. Draw children // dispatchDraw 5. If necessary, dra

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值