问题描述
我有一个视图,可以在其中绘制文本,并且根据某些条件,文本应为以下三种样式之一:
private val textPaint = Paint().apply{
style= Paint.Style.FILL_AND_stroke
color = Color.BLACK
}
private val conflictTextPaint = Paint().apply{
style= Paint.Style.FILL_AND_stroke
color = Color.RED
typeface = Typeface.DEFAULT_BOLD
}
private val startingCellTextPaint = Paint().apply{
style= Paint.Style.FILL_AND_stroke
color = Color.BLACK
typeface = Typeface.DEFAULT_BOLD
}
如果要应用标准的textPaint和startingCellTextPain,效果确实很好,但是当它尝试呈现冲突文本画图时,字体确实很小。 (起初我以为它根本没有渲染)
if (checkConflicts(row,col,valueString.toInt())) {
paintToUse = conflictTextPaint
Log.d("CONFLICT","Row:" + row.toString() + " Col:" + col.toString() + " isConflict:" + checkConflicts(row,valueString.toInt()).toString() )
} else {
paintToUse = if (cell.isstartingCell) startingCellTextPaint else textPaint
}
paintToUse.getTextBounds(valueString,valueString.length,textBounds)
var textWidth = paintToUse.measureText(valueString)
var textHeight = textBounds.height()
canvas.drawText(
valueString,(col * cellSizePixels) + cellSizePixels / 2 - textWidth / 2,(row * cellSizePixels) + cellSizePixels / 2 + textHeight / 2,paintToUse
)
我对绘画和绘图不是很熟悉,所以我不确定什么地方出了问题。我确实知道(通过调试),在呈现非冲突单元格时,Width通常在40-44左右,而在遇到冲突单元格时,返回17。不知道为什么吗?
ps:我正在尝试基于在https://www.youtube.com/watch?v=LGemCgr-38o&t=6s
上找到的数独教程。解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)