今天给WebView设置圆角时失效,查阅资料都是自定义WebView,提供另一种思路,直接给外层FramLayout设置,直接上代码。
private fun setCorner() {
val outlineProvider = object :ViewOutlineProvider() {
override fun getOutline(view: View, outline: Outline) {
val left = 0
val top = 0
val right = view.width
val bottom = view.height
val cornerRadius = 16.dp
// all corners
// outline.setRoundRect(left, top, right, bottom, cornerRadius.toFloat())
// top corners
outline.setRoundRect(left, top, right, bottom + cornerRadius, cornerRadius.toFloat())
/* bottom corners
outline.setRoundRect(left, top - cornerRadius, right, bottom, cornerRadius.toFloat())*/
/* left corners
outline.setRoundRect(left, top, right + cornerRadius, bottom, cornerRadius.toFloat())*/
/* right corners
outline.setRoundRect(left - cornerRadius, top, right, bottom, cornerRadius.toFloat())*/
/* top left corner
outline.setRoundRect(left , top, right+ cornerRadius, bottom + cornerRadius, cornerRadius.toFloat())*/
/* top right corner
outline.setRoundRect(left - cornerRadius , top, right, bottom + cornerRadius, cornerRadius.toFloat())*/
/* bottom left corner
outline.setRoundRect(left, top - cornerRadius, right + cornerRadius, bottom, cornerRadius.toFloat())*/
/* bottom right corner
outline.setRoundRect(left - cornerRadius, top - cornerRadius, right, bottom, cornerRadius.toFloat())*/
}
}
view?.outlineProvider = outlineProvider
view?.clipToOutline = true
}