试图在矩形内绘制文本,但在 android 处弹出

Trying to draw text inside a rectangle but plops of above it at android

new picture 现在我正在尝试在我绘制的矩形内绘制一个文本(一个数字)。我想制作 2048 以了解更多有关 android 和 kotlin 的用例。但是当我想创建瓷砖时,我遇到了一个大问题。通常数字应该在矩形内,但在我的例子中,它们比原来的矩形高一个矩形。所以在最后一行瓷砖上我没有数字,在顶部有实际游戏场上方的数字。如果你真的不明白我的问题,就写评论吧,我会努力让它变得更好。

重要提示:仅更改文本的 y 线没有帮助,它只会被下一个矩形透支。

这是我的class,我用它来绘制单个图块:

fun drawTile() {
        var number = tile.number
        var cordX = tile.x
        var cordY = tile.y

        shapeDrawable = ShapeDrawable(RectShape())
        shapeDrawable.setBounds(cordX, cordY, tileWidth, tileHeight)

        shapeDrawable.getPaint().color = tile.tileColor
        shapeDrawable.draw(canvas)

        if(number != 0) {

            var paintText = Paint(Paint.ANTI_ALIAS_FLAG)
            paintText.color = Color.BLACK
            paintText.textSize = 50f

            val numberString = "$number"

            paintText.setShadowLayer(10f, 10f, 10f, Color.BLACK)

            canvas.drawText(numberString, cordX.toFloat()+tileWidth/2, cordY.toFloat()+10, paintText) 

        }

        shapeDrawable.draw(canvas)

Here is an pic how it looks ingame

实际上只要改变 y 坐标就可以了,你只需要画出形状

fun drawTile() {
        var number = tile.number
        var cordX = tile.x
        var cordY = tile.y

        shapeDrawable = ShapeDrawable(RectShape())
        shapeDrawable.setBounds(cordX, cordY, tileWidth, tileHeight)

        shapeDrawable.getPaint().color = tile.tileColor

        shapeDrawable.draw(canvas)
        if(number != 0) {

            var paintText = Paint(Paint.ANTI_ALIAS_FLAG)
            paintText.color = Color.BLACK
            paintText.textSize = 50f

            val numberString = "$number"

            paintText.setShadowLayer(10f, 10f, 10f, Color.BLACK)

            canvas.drawText(numberString, cordX.toFloat() + tileWidth/2, cordY.toFloat() + tileHeight / 2, paintText) 

        }