如何只绘制视图背景的一部分
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 的解决方案和解释!
我只需要绘制 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 的解决方案和解释!