Kotlin Paint drawText和大小

问题描述

我有一个视图,可以在其中绘制文本,并且根据某些条件,文本应为以下三种样式之一:

   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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...