Изменить холст на цвет ячейки onTouch вниз

#java #android #canvas #drawing

#java #Android #холст #рисование

Вопрос:

На самом деле я делаю игру на 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);
            }
        }
    }
}
  

И я получаю это:
сеточная игра:
сеточная игра

И я хотел бы, когда я касаюсь ячейки в сетке, изменять цвет фона.
Я думаю, что лучшим решением здесь для меня является выполнение drawRect (), но я не знаю, какое измерение мне следует использовать.
У меня есть игровая модель в библиотеке, по которой я могу получить позицию (x, y).

Ответ №1:

Вероятно, вам будет лучше использовать GridPane, поскольку это значительно упростит процесс рисования растровых линий и добавления обработчика событий к каждой ячейке.