代码之家  ›  专栏  ›  技术社区  ›  Jack Guo

自定义文本视图文本不可见

  •  0
  • Jack Guo  · 技术社区  · 7 年前

    我有一个简单的习惯 TextView 添加圆角背景色。然而,文本是不可见的,你可以从绿色的小广场看到。我也尝试在xml文件中设置文本和textcolor,同样的事情。我做错了什么?

    enter image description here

    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)
        }
    }
    
    2 回复  |  直到 7 年前
        1
  •  1
  •   Piotr Aleksander Chmielowski    7 年前

    你必须打电话 super.onDraw 画完矩形后。

        2
  •  1
  •   Eddie Lopez    7 年前

    您正在基类内容的顶部绘制矩形。