2016-06-28 94 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);