Создайте класс, который можно отобразить на холсте

#java #android #canvas

#java #Android #canvas

Вопрос:

я пытаюсь создать какую-то игру, похожую на reflex, для Android, которая рисует круги в случайных местах, и пользователь должен нажимать на эти круги как можно быстрее. я пытаюсь создать и добавить метод circle (int amount), но для этого я хотел бы перерисовать тот же класс, поскольку идея заключается в том, что круги расширяются, а затем сжимаются. таким образом, сработало бы что-то вроде canvas.draw(MyCircleClass). возможно ли создать такой класс, который можно отобразить на холсте?

Ответ №1:

Вы можете обернуть класс, который можно нарисовать в Canvas , как Rect , Bitmap и т.д. Затем, чтобы нарисовать его на Canvas , вы должны вызвать canvas.drawRect(myRectWrapper.getRect()) .

Другим способом было бы обернуть Canvas сам. Затем вы можете передавать в него все, что вам нравится, при условии, что вы предоставляете метод для преобразования вашего класса во что-то, Canvas что можно нарисовать. Это выглядело бы как myCanvasWrapper.draw(myClass) . Внутри draw(myClass) ваша оболочка canvas вызовет canvas.drawX(transformToX(myClass))

Суть в том, что в какой-то момент вам нужно будет вызвать drawX() метод original Canvas , предоставив один из типов, которые он может обрабатывать.

Ответ №2:

Почему бы просто не создать метод в вашем классе void drawToCanvas(Canvas canvas) ?