设置容器圆角问题记录

今天给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
}
经验分享 程序员 微信小程序 职场和发展