有点小啰嗦的一篇学习笔记,可以直接看最后得出的结论:前面的各种图片和说明都是为最后的结论服务的
1)剪切:和平常画图工具剪切的作用一样,在画布上剪切一个区域,比如剪切一个Rect区域,画布canvas其余的部分都丢掉,之后所有的画图都在这个Rect区域内进行(如果不涉及save和restore方法)。
2)clip进行剪切的时候,不会影响之前已经画好的图形。
3)剪切是对canvas的操作,而不是在canvas上的图进行操作。
为了说明这几点,下面进行一下说明。
步骤1) 在剪切之前绘制一个全屏的蓝色的矩形。
2)定义剪切的矩形Rect区域,并进行剪切
3)设置剪切过后画布颜色为红色
运行的效果如下图所示:此时剪切过后画布的区域就是剪切的Rect区域,虽然剪切掉了canvas上面和下面的一部分,但是仍然会把途中所示的蓝色部分显示出来而不会剪切掉:也就是如上所说不会影响之前已经画好的图形。
代码如下:
protected void onDraw(Canvas canvas) {
int width = getMeasuredWidth();
in