您的位置:首页 > 移动开发 > Android开发

android绘图canvas.clipRect()方法的作用

2016-02-19 15:50 429 查看
该方法用于裁剪画布,也就是设置画布的显示区域

调用clipRect()方法后,只会显示被裁剪的区域,之外的区域将不会显示

该方法最后有一个参数Region.Op,表示与之前区域的区域间运算种类,如果没有这个参数,则默认为Region.Op.INTERSECT

这几个参数的意义为:

DIFFERENCE是第一次不同于第二次的部分显示出来

REPLACE是显示第二次的

REVERSE_DIFFERENCE 是第二次不同于第一次的部分显示

INTERSECT交集显示

UNION全部显示

XOR补集 就是全集的减去交集生育部分显示

下面看一个例子

paint.setAntiAlias(true);                           //设置画笔为无锯齿
paint.setColor(Color.BLACK);                        //设置画笔颜色
paint.setTextSize((float) 30.0);                    //设置字体大小

canvas.clipRect(100, 100, 350, 600, Region.Op.INTERSECT);//设置显示范围
canvas.drawColor(Color.RED);
canvas.drawCircle(100,100,100,paint);


效果如下:



解释一下

首先调用canvas的clipRect方法,剪切了一块矩形区域,也就是这一块矩形区域作为显示区域,然后我们调用canvas的drawColor方法,为画布设置成红色,现在画布也就是这一块矩形区域,我们从效果图中可以看出,最后drawCircle画了一个实心黑色的圆,我们看到只显示了在红色矩形的部分圆,黑色的扇形,很容易看出,其他部分不显示。

这就是clipxx的作用,设置画布的显示区域,注意,clipxx方法只对设置以后的drawxx起作用,已经画出来的图形,是不会有作用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: