首页 > 解决方案 > Android setText 覆盖矩形的颜色

问题描述

我正在使用自定义视图创建棋盘

棋盘是使用canvas.drawRect()正常绘制的,它是使用两种颜色绘制的,白色和绿色
但是当我想使用canvas.drawText()绘制文本时,
我发现文本
在走到某个地方后覆盖了矩形
原始棋盘的颜色
颜色是绿色

在 onDraw 函数中,我通过嵌套 for 循环进行二维如下
假设棋盘是 8x8 cellSize 是矩形大小

for(int i = 0; i < rows; ++i) {
    for(int j = 0; j < cols; ++j) {
        if (visited[i][j] > 0) {
            // if visited just draw the rectangle red
            mPaint.setColor(Color.RED);

            canvas.drawRect(j * cellSize, i * cellSize,
                           (j + 1) * cellSize, (i + 1) * cellSize, mPaint);
            continue;
        }


        if (i == mCurPosition.x && j == mCurPosition.y) {
            // centerY is calculated for alignment
            canvas.drawText("@", j * cellSize + cellSize / 2, centerY, mPaint);
            continue;
        }

        mPaint.setStyle(Paint.Style.FILL);
        if ((i & 1) == 0 && (j & 1) == 0 || (i & 1) == 1 && (j & 1) == 1)
            mPaint.setColor(Color.WHITE);
        else
            mPaint.setColor(Color.rgb(118, 150, 86));

        canvas.drawRect(j * cellSize, i * cellSize, (j + 1) * cellSize, (i + 1) * cellSize, mPaint);

    }
}

我尝试在第二个 if 条件下不使用 continue 语句,
但 '@' 似乎被矩形颜色覆盖
有没有办法解决这个问题?
谢谢

标签: androiddrawrectondrawdrawtext

解决方案


推荐阅读