我正在尝试制作一些类似于Android游戏的反射,它会在随机位置绘制圆圈,用户必须尽快点击这些圆圈。我正在尝试制作和addcircle(int amount)方法,但为此我想重绘同一个类,因为它是圈子扩展然后收缩的想法。所以像canvas.draw(MyCircleClass)这样的东西会起作用。是否可以创建一个可以绘制到画布的类?
答案 0 :(得分:1)
您可以将可以绘制的类包装到Canvas
,例如Rect
,Bitmap
等。然后在Canvas
上绘制它,您可以调用canvas.drawRect(myRectWrapper.getRect())
1}}。
另一种方法是包装Canvas
本身。只要你提供一种方法将你的类转换为某种东西,Canvas
可以绘制,你就可以将任何你喜欢的东西传递给它。它看起来像myCanvasWrapper.draw(myClass)
。在draw(myClass)
内,您的画布包装器会调用canvas.drawX(transformToX(myClass))
最重要的是,在某些时候,您需要调用原始drawX()
的{{1}}方法,提供其可以处理的类型之一。
答案 1 :(得分:1)
为什么不在班级void drawToCanvas(Canvas canvas)
中创建方法?