精通Android自定义View(十一)绘制篇Canvas分析之裁剪

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zl18603543572/article/details/88386940

clipRect(int left, int top, int right, int bottom) 
这个方法作用就是裁切一个矩形出来,但是图形不还是在canvas上面的,所以本质上还是裁切的canvas画布,使图形只是在裁切出来的那块画布上展示,这就达到了裁切效果,同样参数就按照绘制一个矩形的参数传进去就好了,就是可以认为是矩形的左上角以及右下角的坐标


clipPath(@NonNull Path path) 
这个方法比上面的方法灵活很多,因为它传入的是一个Path,所以就提供了更多裁切的可能性了,因为Path本身就可以绘制很多不同的形状

        canvas.save();
        //定义一个圆形区域
        path.addCircle(500,500,400, Path.Direction.CCW);
        //裁剪圆形区域,也就是说之后绘制的内容只有在圆形区域内的内容才会显示出来
        canvas.clipPath(path);
        //绘制一个图片
        Bitmap bitmap =   BitmapFactory.decodeResource(getResources(), R.drawable.snoopy);
        canvas.drawBitmap(bitmap,100,100,paint);
        canvas.restore();
        //至此显示出来的是一个圆形图片

猜你喜欢

转载自blog.csdn.net/zl18603543572/article/details/88386940