Canvas 画布 详谈

Canvas

Canvas作用:

Android中使用图形处理引擎,2D部分是android SDK内部自己提供,3D部分是用Open GL ES 1.0。

大部分2D使用的api都在android.graphics和android.graphics.drawable包中。他们提供了图形处理相关的: Canvas、ColorFilter、Point(点)和RetcF(矩形)等,还有一些动画相关的:AnimationDrawable、 BitmapDrawable和TransitionDrawable等。以图形处理来说,我们最常用到的就是在一个View上画一些图片、形状或者自定义的文本内容,可以使用Canvas来实现的。你可以获取View中的Canvas对象,绘制一些自定义形状,然后调用View. invalidate方法让View重新刷新,然后绘制一个新的形状,这样达到2D动画效果。


Canvas使用方法:


Canvas对象的获取方式:

  1. 重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来,操作此Canvas,效果会直接反应在View中。
  2. new一个Canvas对象,并绑定一个Bitmap变量,如下:
    Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);   
    Canvas canvas = new Canvas(bitmap);
Canvas提供的绘制图形的方法:
Css_bugtester
如上:Canvas可以绘制的对象有:弧线(arcs)、填充颜色(argb和color)、 Bitmap、圆(circle和oval)、点(point)、线(line)、矩形(Rect)、图片(Picture)、圆角矩形 (RoundRect)、文本(text)、顶点(Vertices)、路径(path)

Canvas位置转换的方法:
rorate、scale、translate、skew(扭曲)等,而且它允许你通过获得它的转换矩阵对象(getMatrix方法) 直接操作它。这些操作就像是虽然你的笔还是原来的地方画,但是画纸旋转或者移动了,所以你画的东西的方位就产生变化。为了方便一些转换操作,Canvas 还提供了保存和回滚属性的方法(save和restore),比如你可以先保存目前画纸的位置(save),然后旋转90度,向下移动100像素后画一些图形,画完后调用restore方法返回到刚才保存的位置。

Canvas常用方法:
Canvas():创建一个空白画布可以使用setBitmap设置绘制具体的画布
Canvas(Bitmap bitmap)
:已bitmap对象创建一个画布,则将内容都绘制在bitmap上,因此bitmap不能为NULL
Canvas(javax.microedition.khronos.opengles.GL gl):绘制3D效果时使用,与OpenGL有关
drawColor:设置Canvas的背景颜色
setBitmap:设置具体画布
clipRect:设置显示区域,即设置裁剪区域
isOpaque:检测是否支持透明
rotate:旋转画布
setViewport:设置画布中显示的窗口
skew:设置偏移量
save:锁定画布,如果要对画布进行旋转、移动等操作时进行锁定时可以只旋转或移动其中一个
restore:解锁画布,与锁定一起使用,不能比save方法使用次数多




——mokee8023
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值