Android自定义view之clip裁切以及几何变换

本文详细介绍了Android中如何使用clipRect和clipPath进行裁切操作,以及利用canvas的translate、rotate、scale和skew进行几何变换。此外,还探讨了通过Matrix实现更复杂的变换,并提到了Camera类在3D变换中的应用,帮助开发者更好地理解和运用这些技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  今天我们来实践下Android部分的裁切就是clip打头的方法以及一些几何矩阵变换,所谓的裁切,顾名思义就是裁剪啊,就是把一个图形按照另外一个图形切成我们想要的样子,例如我们想把一张图片裁剪为圆形或者矩形或者五角星等等我们想要的形状。而矩阵变换是怎么回事呢?矩阵变换就是进行图形的平移啊、缩放啊、旋转啊,或者在某个方向上拉伸形状啊,这类的操作。

裁切部分

  • clipRect(int left, int top, int right, int bottom)
    这个方法作用就是裁切一个矩形出来,但是图形不还是在canvas上面的,所以本质上还是裁切的canvas画布,使图形只是在裁切出来的那块画布上展示,这就达到了裁切效果,同样参数就按照绘制一个矩形的参数传进去就好了,就是可以认为是矩形的左上角以及右下角的坐标
  • clipPath(@NonNull Path path)
    这个方法比上面的方法灵活很多,因为它传入的是一个Path,所以就提供了更多裁切的可能性了,因为Path本身就可以绘制很多不同的形状啊,发挥大家想象力的时候到了

几何变换

  • canvas.translate(float dx, float dy)
    画布的平移,其实就是坐标系的平移,原来坐标系原点是在手机屏幕左上角,如果canvas.translate(200, 0)就代表将坐标系向右移动了200,所以现在的坐标原点变成了(200,0)了,就是这么个意思
  • canvas.rotate(float degrees, float px, float py)
    画布的旋转,degress就是旋转角度,正数为顺时针旋转,负数为逆时针旋转,后面的px和py则是旋转中心,所以坐标系也会进行相应的旋转,所以绘制的图形自然也是被旋转了
  • canvas.scale(float sx, float sy, float px, float py)
    画布的缩放,前面的sx和sy是指在x方向上以及y方向
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值