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

该方法用于裁剪画布,也就是设置画布的显示区域
调用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);

效果如下:
android绘图canvas.clipRect()方法的作用_第1张图片
解释一下
首先调用canvas的clipRect方法,剪切了一块矩形区域,也就是这一块矩形区域作为显示区域,然后我们调用canvas的drawColor方法,为画布设置成红色,现在画布也就是这一块矩形区域,我们从效果图中可以看出,最后drawCircle画了一个实心黑色的圆,我们看到只显示了在红色矩形的部分圆,黑色的扇形,很容易看出,其他部分不显示。
这就是clipxx的作用,设置画布的显示区域,注意,clipxx方法只对设置以后的drawxx起作用,已经画出来的图形,是不会有作用的。

你可能感兴趣的:(android)