将画布的颜色更改为onTouch down

时间:2019-03-15 14:01:58

标签: java android canvas drawing

我实际上是在Android Studio上基于此绘制的网格进行游戏:

public void dessin(Canvas canvas){
    paint.reset();
    TenGame theGame=gam.getTenGame();
    canvas.drawColor(Color.YELLOW);

    paint.setColor(Color.BLACK);
    for(int x=0;x<canvasWidth;x+=cellSize){
        canvas.drawLine(x,0,x,canvasWidth,paint);
    }
    for(int y=0;y<canvasWidth;y+=cellSize){
        canvas.drawLine(0,y,canvasWidth,y,paint);
    }

    paint.setTextSize(50);
    paint.setFlags(Paint.ANTI_ALIAS_FLAG);
    PositionList plist=theGame.getSelectedGroup();

    for(int x=0;x<5;x++){
        for(int y=0;y<5;y++){
            Position p=new Position(x,y);
            if (theGame.get(p)!=null) {
                canvas.drawText(Integer.toString(theGame.get(p)), (x * cellSize) + 15, (cellSize + y * cellSize) - 15, paint);
            }
            else{
                canvas.drawText("", (x * cellSize) + 15, (cellSize + y * cellSize) - 15, paint);
            }
        }
    }
}

我明白了:
网格游戏:
gridgame

当我触摸网格中的一个单元格时,我想更改背景的颜色。
我认为对我来说最好的解决方案是做一个drawRect(),但我不知道应该做哪个尺寸。
我的库中有游戏模型,可以获取位置(x,y)。

1 个答案:

答案 0 :(得分:0)

使用GridPane可能会更好,因为这将使绘制栅格线和向每个像元添加事件处理程序的过程变得更加容易。