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使用ViewOutlineProvider实现圆角)