本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点
实现圆角是一个很常见的需求,也有很多种方式,这里介绍2种,实现起来都不麻烦,很方便
方法一:自定义View
在 Kotlin 中实现圆角的 AppCompatImageView
可以通过自定义控件和使用 Canvas
和 Path
进行剪裁来实现。下面是一个简单的实现方法,继承 AppCompatImageView
并自定义绘制方法,使其可以设置圆角属性。
自定义 AppCompatImageView
首先,创建一个自定义的 AppCompatImageView
类:
import android.content.Context
import android.graphics.Canvas
import android.graphics.Path
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
import kotlin.math.min
class RoundedImageView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : AppCompatImageView(context, attrs, defStyleAttr) {
private val path = Path()
private var cornerRadius = 0f
init {
// 初始化代码,可以在此读取自定义属性
}
override fun onDraw(canvas: Canvas) {
val rect