我有这样的逻辑在画布上绘制数字时间。它工作正常,但文本在边缘切割。我如何更新它以使文本位于中间并具有水平填充,这将对任何屏幕尺寸做出反应。
private fun drawDigitalClock(canvas: Canvas,context: Context) {
paint = Paint()
val formatService = FormatService.getInstance(context)
val timeText = formatService.formatTime(time)
paint.textSize = fontSize.toFloat() * 4.5f
paint.color = Color.WHITE
paint.textAlign = Paint.Align.CENTER
canvas.drawText(timeText, width / 2f, height / 2f, paint)
}
private fun drawDigitalClock(canvas: Canvas,context: Context) {
paint = Paint()
val formatService = FormatService.getInstance(context)
val timeText = formatService.formatTime(time)
paint.textSize = fontSize.toFloat() * 4.5f
paint.color = Color.WHITE
paint.textAlign = Paint.Align.CENTER
//Adjust textWidth to fit
val textWidth = paint.measureText(timeText)
val adjustedTextSize = paint.textSize * (width - totalPadding)/ textWidth
paint.textSize = adjustedTextSize
canvas.drawText(timeText, width / 2f, height / 2f, paint)
}