如何只绘制视图背景的一部分

How to draw only a part of a view background

我只需要绘制 TextView 的一部分。为此,我将 TextView 子类化并使用以下代码覆盖了 onDraw 方法:

class DisappearingTextView(context: Context, attrs: AttributeSet) : AppCompatTextView(context, attrs) {
    override fun onDraw(canvas: Canvas) {
        val cropRect = computeCropRect()
        canvas.clipRect(cropRect)
        super.onDraw(canvas)
    }
}

文本效果很好,但背景仍然完全绘制。有什么办法也可以部分绘制背景吗?

解决方法是覆盖 draw() 方法而不是 onDraw(),因为背景是在调用 onDraw() 之前绘制的。感谢 Romain Guy 的解决方案和解释!