我是因为这样的需求才想去裁剪的
想剪出中间那个透明框
学习到了某篇文章(具体源头已不可考),弄出来的效果是这样的
其实一点也不难,我下面给出源代码,有详细的注释
public class ClipView extends View { private Paint mPaint; private Path mPath; public ClipView(Context context) { super(context); init(); } public ClipView(Context context, @Nullable AttributeSet attrs) { super(context, attrs); init(); } public ClipView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } public ClipView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); } private void init() { setFocusable(true); mPaint = new Paint(); mPaint.setAntiAlias(true); mPaint.setStrokeWidth(6); mPaint.setTextSize(16); mPaint.setTextAlign(Paint.Align.RIGHT); mPath = new Path(); } private void drawScene(Canvas canvas) { canvas.clipRect(0, 0, 100, 100);//占用区间