Android使用ViewOutlineProvider实现圆角

Android可以通过设置 View#setOutlineProvider方法来设置轮廓。(不过好像不支持反锯齿,使用贝塞尔曲线来创建轮廓的话,锯齿感很重。

/**
 * @param radius 圆角半径
 */
class RoundRectOutlineProvider(private val radius: Float) : ViewOutlineProvider() {

    override fun getOutline(view: View, outline: Outline) {
        outline.setRoundRect(0, 0, view.width, view.height, radius)
    }
}

使用方法如下:

            val coverOutline = RoundRectOutlineProvider(3.px.toFloat())
            view.outlineProvider = coverOutline
            view.clipToOutline = true

效果预览如下

效果预览
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,549评论 25 709
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,480评论 2 59
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,040评论 3 119
  • 每分每秒你都是世界的中心,就像此刻 你看到的人,你听到的话,你躯壳外的一切 像电影里的道具,是为你的出场作的准备 ...
    东七巷阅读 1,345评论 0 0
  • 一直都想写点什么,可又不知该写点什么,从哪里写起?就好像现在,每一个字都是在键盘上噼噼啪啪打出来,所以说是“写”,...
    林小天阅读 1,872评论 0 0