自定义 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。
我有一个简单的自定义 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。