【Android】几行代码实现伪3D高光效果小球
2021-06-19 本文已影响0人
littlefogcat
实现效果:
![](https://img.haomeiwen.com/i6532223/80b56697f6c20f88.png)
![](https://img.haomeiwen.com/i6532223/483ec101eca07ed2.png)
![](https://img.haomeiwen.com/i6532223/ad7cfca2a43f70de.png)
![](https://img.haomeiwen.com/i6532223/4b3644b0b2926aba.png)
演示代码,为方便起见,这里所有长度、颜色都是固定值:
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)
}
}