2016-06-28 77 views
-1

我正在创建一个自定义视图,但onDraw方法永远不会被调用。我试过这样做 - setWillNotDraw(false)但它仍然无法正常工作。未调用onDraw方法?

实际上,在拨打invalidate()之后它甚至不工作。这里是我的代码 -

public class Box extends View { 
    public Box (Context context) { 
     super (context); 
     init(); 
    } 

    private void init() { // Initialize paint object 
     paint = new Paint(); 
     paint.setStyle(Paint.Style.FILL); 
     paint.setColor(mBoxColor); 
     setMeasuredDimension(200, 200); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     canvas.drawRect(100, 100, 200, 200, paint); 
    } 
} 

我的活动码 -

Box box = new Box(this); 

请帮

+0

你是如何加入你的' Box'到'Activity'的'View'分层结构?在屏幕上显示之前不会画出。 –

+0

添加this.setWillNotDraw(false);在构造函数 –

+0

中,View的子类会忽略setWillNotDraw。它适用于ViewGroup的子类。您可能未将框添加到任何视图 – Blackbelt

回答

0

在你MainActivity.java

使用

setContentView(box);