2016-03-03 68 views
0

我有一个自定义的线性布局,我从中扩展。我已经调用setWIllNotCacheDrawing,但它不会工作。这里是我的类:Android onDraw从来没有叫

public class ClippedLinearLayout extends LinearLayout { 

public ClippedLinearLayout(Context context) { 
    super(context); 
    this.setWillNotCacheDrawing(false); 
} 

public ClippedLinearLayout(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    this.setWillNotCacheDrawing(false); 
} 

public ClippedLinearLayout(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    this.setWillNotCacheDrawing(false); 
} 

@Override 
protected void onDraw(Canvas canvas) { 
    Log.e("clipped?", "clipped?); 
    Path mPath = new Path(); 
    mPath.addCircle(50, 50, 50, Path.Direction.CCW); 
    canvas.clipPath(mPath, Region.Op.INTERSECT); 
    super.onDraw(canvas); 
} 

} 
+0

重写'draw(Canvas)'或'dispatchDraw(Canvas)',一定要调用'super(canvas)'' – pskink

回答