#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)
?