android绘图canvas.clipRect()方法的作用
2016-02-19 15:50
429 查看
该方法用于裁剪画布,也就是设置画布的显示区域
调用clipRect()方法后,只会显示被裁剪的区域,之外的区域将不会显示
该方法最后有一个参数Region.Op,表示与之前区域的区域间运算种类,如果没有这个参数,则默认为Region.Op.INTERSECT
这几个参数的意义为:
DIFFERENCE是第一次不同于第二次的部分显示出来
REPLACE是显示第二次的
REVERSE_DIFFERENCE 是第二次不同于第一次的部分显示
INTERSECT交集显示
UNION全部显示
XOR补集 就是全集的减去交集生育部分显示
下面看一个例子
效果如下:
解释一下
首先调用canvas的clipRect方法,剪切了一块矩形区域,也就是这一块矩形区域作为显示区域,然后我们调用canvas的drawColor方法,为画布设置成红色,现在画布也就是这一块矩形区域,我们从效果图中可以看出,最后drawCircle画了一个实心黑色的圆,我们看到只显示了在红色矩形的部分圆,黑色的扇形,很容易看出,其他部分不显示。
这就是clipxx的作用,设置画布的显示区域,注意,clipxx方法只对设置以后的drawxx起作用,已经画出来的图形,是不会有作用的。
调用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起作用,已经画出来的图形,是不会有作用的。
相关文章推荐
- Android 性能测试之TraceView的使用
- can't rename root module
- android项目总结
- android 判断activity是否在最上层
- Android性能测试框架Emmagee
- Android数据存储-ContentProvider总结
- android studio adb连接不上手机 ADB server didn't ACK
- Android性能测试之Monkey使用
- Android EditText内容监听
- Android开发学习之路-Palette颜色提取工具类使用
- Android设备资源占用模拟
- android自学笔记 开始--->第一个应用--->第一个项目
- android errors
- ANDROID_MARS学习笔记_S02_008_ANIMATION第二种使用方式:xml
- Android将Bitmap 以图片形式保存到sd卡中
- Android使用Intent一键分享图片文字到腾讯、新浪、开心、人人等
- ANDROID_MARS学习笔记_S02_007_Animation第一种使用方式:代码
- Android判断一个点在不在多边形中
- android APK反编译及混淆学习总结
- [Android] how to get facebook profile