自定义 TextView 文本不可见

Custom TextView text not visible

我有一个简单的自定义 TextView,它添加了带圆角的背景颜色。然而,文本是不可见的,正如您可以从绿色小方块中看到的那样。我也尝试在 XML 文件中设置文本和文本颜色,同样的事情。我哪里做错了?

class StatusRectView(context: Context, attrs: AttributeSet) : TextView(context, attrs) {

    private var cornerRadius = 0.8f
    private val paint = Paint()
    private var size = 0  

    init {
        paint.isAntiAlias = true
        gravity = Gravity.CENTER
        setTextColor(Color.WHITE)
        text = "D"
    }

    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec)

        size = Math.min(measuredWidth, measuredHeight)
        setMeasuredDimension(size, size)
    }

    override fun onDraw(canvas: Canvas) {
        super.onDraw(canvas)

        paint.color = Color.GREEN
        paint.style = Paint.Style.FILL

        val rectF = RectF(0f,  0f, size * 1f, size * 1f)
        canvas.drawRoundRect(rectF, cornerRadius, cornerRadius, paint)
    }
}

您正在基础 class 内容之上绘制矩形。

您必须在绘制矩形后调用 super.onDraw

您必须在自定义 textView 的 onDraw 方法中调用 super.onDraw。