实现效果:
渐变
渐变2
渐变3
渐变4
演示代码,为方便起见,这里所有长度、颜色都是固定值:
class HighlightView : View {
private val paint = Paint().apply { isAntiAlias = true }
private val gradient = RadialGradient(
134f, 57f, 94f,
Color.parseColor("#F2FFFFFF"),
Color.parseColor("#FF000000"),
Shader.TileMode.MIRROR
)
constructor(context: Context?) : super(context)
constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)
constructor(context: Context?, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr)
override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec)
setMeasuredDimension(200, 200)
}
override fun onDraw(canvas: Canvas) {
paint.style = Paint.Style.FILL
paint.shader = gradient
canvas.drawCircle(100f, 100f, 100f, paint)
}
}
网友评论