关于Canvas的一些用法

来源:互联网 发布:centos开机启动命令 编辑:程序博客网 时间:2024/05/21 13:56

关于Canvas

1、如何获得一个Canvas对象。
Canvas对象的获取方式有三种:
第一种:我们通过重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来,我们可以通过操作这个Canvas,来改变view效果。
第二种:就是自己创建一个Canvas对象。一个Canvas对象一定是结合一个Bitmap对象的。所以一定要为一个Canvas对象设置一个Bitmap对象。
1. //得到一个Bitmap对象,下面是其中的一种方法
2. Bitmap a = Bitmap.createBitmap(100,100, Bitmap.Config.ARGB_4444);
3. Canvas c = new Canvas(a);
4. /*先new一个Canvas对象,再调用setBitmap方法,一样的效果
5. * Canvas c = new Canvas();
6. * c.setBitmap(a);
7. */
第三种 :是调用SurfaceHolder.lockCanvas(),返回一个Canvas对象。

2、canvas可以绘制的内容
1)填充
drawARGB(int a, int r, int g, int b)
drawColor(int color)
drawRGB(int r, int g, int b)
drawColor(int color, PorterDuff.Mode mode)

2)几何图形

canvas.drawArc (扇形)
canvas.drawCircle(圆)
canvas.drawOval(椭圆)
canvas.drawLine(线)
canvas.drawPoint(点)
canvas.drawRect(矩形)
canvas.drawRoundRect(圆角矩形)
canvas.drawVertices(顶点)
cnavas.drawPath(路径)
3)图片

   canvas.drawBitmap (位图)   canvas.drawPicture (图片)

4)文本
canvas.drawText

PorterDuff.Mode为枚举类,一共有16个枚举值:
1.PorterDuff.Mode.CLEAR

所绘制不会提交到画布上。
2.PorterDuff.Mode.SRC
显示上层绘制图片
3.PorterDuff.Mode.DST
显示下层绘制图片
4.PorterDuff.Mode.SRC_OVER(上层在上面)
正常绘制显示,上下层绘制叠盖。
5.PorterDuff.Mode.DST_OVER(下层在上面)
上下层都显示。下层居上显示。
6.PorterDuff.Mode.SRC_IN(显示交集的上层)
取两层绘制交集。显示上层。
7.PorterDuff.Mode.DST_IN(显示交集的下层)
取两层绘制交集。显示下层。
8.PorterDuff.Mode.SRC_OUT(显示非交集的上层)
取上层绘制非交集部分。
9.PorterDuff.Mode.DST_OUT(显示非交集的下层)
取下层绘制非交集部分。
10.PorterDuff.Mode.SRC_ATOP(取dst区域,交集部分src在上面)
取下层非交集部分与上层交集部分
11.PorterDuff.Mode.DST_ATOP(取src区域,交集部分dst在上面)
取上层非交集部分与下层交集部分
12.PorterDuff.Mode.XOR(去交集部分)
异或:去除两图层交集部分
13.PorterDuff.Mode.DARKEN(取全部区域、没看出效果来、慎用)
取两图层全部区域,交集部分颜色加深
14.PorterDuff.Mode.LIGHTEN(取全部区域、没看出效果来、慎用)
取两图层全部,点亮交集部分颜色
15.PorterDuff.Mode.MULTIPLY(取交集区域、叠加后交集颜色变化、慎用)
取两图层交集部分叠加后颜色
16.PorterDuff.Mode.SCREEN(取全部区域、叠加后交集颜色变化、慎用)
取两图层全部区域,交集部分变为透明色

0 0
原创粉丝点击