/** * 创建一个圆角的Layout, 且不影响该Layout的background */ public class RoundConnerViewGroup extends ViewGroup { private Path path; private static final CONNER_RADIUS = ; @Override protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) { super.onSizeChanged(width, height, oldWidth, oldHeight); float cornerRadius = CONNER_RADIUS; this.path = new Path(); this.path.addRoundRect(new RectF(0, 0, width, height), cornerRadius, cornerRadius, Path.Direction.CW); } @Override protected void dispatchDraw(Canvas canvas) { if (this.path != null) { canvas.clipPath(this.path); } super.dispatchDraw(canvas); } }