android之Canvas浅谈常用几个方法

1、通俗说canvas是一块画布,我们所有的绘制操作都在其上进行,但实质上canvas只是bitmap的容器,真正的绘制的内容是在bitmap上显示,但我们自定义view的时候再onDraw()中绘制不用关注,因为ondraw()给我们的canvas是初始化过的,如果要自己创建则需要 Canvas mCanvas -= new Canvas(bitmap);

      


        即有两种方式获取 Canvas 

       第一、api给我们提供 ondraw(canvas)

      第二、自己创建,一般在自定义surfaceview或者移动实时更新View的时候  Canvas mCanvas -= new Canvas(bitmap);在这个bitmap上绘制完数据之后,我们要显示到手机屏幕上,这时要surfaceview要获取屏幕缓存的canvas,将bitmap数据绘制更新,对于自定义的view来说要在ondraw(canvas)中的拿到canvas.drawbitmap将准备好的bitmap绘制更新到屏幕上


2、介绍常用的canvas方法
       

      drawColor();设置画布的背景

      drawXXX();绘制各种图案

      translate();平移画布到指定的座标   

      rotate();//指定角度旋转画布

     save();保存画布,作用就是讲之前绘制的所有的图案保存,让后续的操作像是在一个新的图层上操作一样,不会影响到之前已经绘制的图案

  save() : 用来保存Canvas的状态,save()方法之后的代码,可以调用Canvas的平移、放缩、旋转、裁剪等操作!

    restore();作用是合并图层,即将save()之前和save()之后的图案进行合并,一般save()和restore()一起使用

   

    5.0系统新增的api

    saveLayer() ;// 作用跟save一样,但是很明确就是保存新的图层将这个图层入栈,然后续的操作都在这个图层上进行

   saveLayerAlpha():// 作用跟save一样,但是很明确就是保存新的图层将这个图层入栈,然后续的操作都在这个图层上进行,可以设置这个新图层的背景透明度

   同样也是通过restore()合并图案 ,还可以使用restoreToCount(saveCount)指定图层出栈,与保存之前的图案合并


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章