HenCoder Android 开发进阶:自定义 View 1-4 Canvas 对绘制的辅助

这期是 HenCoder 自定义绘制的第 1-4 期:Canvas 对绘制的辅助——范围裁切和几何变换。

之前的内容在这里: 
HenCoder Android 开发进阶 自定义 View 1-1 绘制基础 
HenCoder Android 开发进阶 自定义 View 1-2 Paint 详解 
HenCoder Android 开发进阶 自定义 View 1-3 文字的绘制

如果你没听说过 HenCoder,可以先看看这个: 
HenCoder:给高级 Android 工程师的进阶手册

简介

一图胜千言,一视频胜千图,走你: class="video_iframe" data-vidtype="2" allowfullscreen="" frameborder="0" data-ratio="1.7647058823529411" data-w="480" data-src="http://v.qq.com/iframe/player.html?vid=s0533qs7j60&width=670&height=376.875&auto=0" style="display: block; width: 670px !important; height: 376.875px !important;" width="670" height="376.875" data-vh="376.875" data-vw="670" src="http://v.qq.com/iframe/player.html?vid=s0533qs7j60&width=670&height=376.875&auto=0"/>

1 范围裁切

范围裁切有两个方法: clipRect() 和 clipPath()。裁切方法之后的绘制代码,都会被限制在裁切范围内。

1.1 clipRect()

使用很简单,直接应用:

canvas.clipRect(left, top, right, bottom);  
canvas.drawBitmap(bitmap, x, y, paint);  

记得要加上 Canvas.save() 和 Canvas.restore() 来及时恢复绘制范围,所以完整代码是这样的:

canvas.save();  
canvas.clipRect(left, top, right, bottom);  
canvas.drawBitmap(bitmap, x, y, paint);  
canvas.restore();  

1.2 clipPath()

其实和 clipRect() 用法完全一样,只是把参数换成了 Path ,所以能裁切的形状更多一些:

canvas.save();  
canvas.clipPath(path1);  
canvas.drawBitmap(bitmap, point1.x, point1.y, paint);  
canvas.restore();

canvas.save();  
canvas.clipPath(path2);  
canvas.drawBitmap(bitmap, point2.x, point2.y, paint);  
canvas.restore();  

2 几何变换

几何变换的使用大概分为三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值