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
效果预览如下