我想在画布上绘制一个带有圆角边框的
textView
。所以下面的代码运行良好。但是圆需要15.0f才能从yPosCenter 中减去
如何正确地为textView提供圆形背景在画布中完美查看。在我的情况下,我必须使用硬代码图15.0f
val verticalOffset = dayVerticalOffsets[day.indexOnMonthView]
val xPos = x * dayWidth + horizontalOffset
val yPos = y * dayHeight + verticalOffset
val xPosCenter = xPos + dayWidth / 2
val yPosCenter = yPos + dayHeight / 2
//subtract 15.0f to adjust it to center - > How could I achieve it
//val subtractVal = yPosCenter - (paint.descent() + paint.ascent())// / 2
canvas.drawCircle(xPosCenter,yPosCenter - 15.0f,paint.textSize * 0.85f , getCounterColor(day))
canvas.drawText("15",xPosCenter,yPosCenter,getTextPaint(day))
我错过了什么。
我认为您所缺少的只是文本不会以yPosCenter
:为垂直中心绘制
// Outside draw function
private val textBounds = Rect()
...
val text = "15"
// Find the center of the text vertically
val textVerticalCenter = paint.getTextBounds(text, 0, text.length(), textBounds).exactCenterY()
canvas.drawText(text, xPosCenter, yPosCenter - textVerticalCenter, paint)