Canvas View自定义构造函数不会调用onDraw

时间:2015-01-02 23:54:35

标签: android canvas view constructor

我有一个带有“游戏板”CanvasView的框架布局,然后我有两个这个类的对象,所以它们绘制不同的东西,当我调用invalidate时,它只会使特定对象无效。

问题是,当我使用默认构造函数创建canvasView的新对象时,它从不调用onDraw。

public Player(View v,int num){
        figura = (CanvasView) v;

这样它会调用ondraw但是如果我这样做

figura = new CanvasView("this context", atributes null, something else) 

它没有使用我的默认构造函数调用onDraw,为什么?即使我这样做:setWillNotDraw(false)

1 个答案:

答案 0 :(得分:0)

因为它不在屏幕上。如果它不在屏幕上,则没有理由进行绘制,因此永远不会调用onDraw。你需要将它添加到某个地方的布局中,以便显示它来绘制。