美文网首页
Android View之Canvas

Android View之Canvas

作者: Jowney | 来源:发表于2018-04-26 14:19 被阅读22次

Canvas官方介绍

The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, text, Bitmap), and a paint (to describe the colors and styles for the drawing).

  • 翻译一下 Canvas用来实现对绘图的操作。你需要4个组件来实现绘图的操作:
    1.bitmap,保存着像素
    2.canvas.执行画图的命令(向bitmap执行写操作)
    3.drawing primtive(e.g.Rect,Path,text,bitmap).绘图的原始内容。
    4.paint.(用来描述绘图时的使用的颜色和风格)

  • 这些解释都很抽象,下面我来说下对它们的形象的理解,说明这4个基本控件,这样加深印象:
    1. bitmap:我们绘图肯定需要一块画布,这个画布承载内容用来表现所要显示的图。它有大小,你可以在上面涂颜料进行绘图,或什么都不涂。
    2 canvas:画布本身不会被绘制,只有当画家去操作画笔,画布才会绘制上图画。这里的canvas就像相当于画家执行画图的操作,绘图的过程
    3: drawing primitive:画家绘图需要参照物,比如你绘图,肯定是有个目标,比如绘制一个字体,一个圆圈,一个矩形(Rect),另一幅图(bitmap)。
    4 paint:绘图需要画笔,paint就相当于这个画笔,你可以定制颜色,粗细。

  • Canvas 通常在哪儿绘制
    1.Canvas与BitMap结合后,Bitmap就像是一块儿画布,任由Canvas绘制

//假设srcBitmap已经创建      
       Bitmap destBitmap = Bitmap.createBitmap(srcBitmap.getWidth, srcBitmap.getHeight, srcBitmap.getConfig);//创建一个空白的Bitmap
       Canvas canvas = new Canvas(destBitmap );//创建Canvas并绑定destBitmap
       canvas.drawBitmap(srcBitmap, ,0,0, new Paint());
       imageView.setImageBitmap(afterBitmap);
    

2.自定义View

@Override  
    OnDraw(Canvas canvas){  
        //利用canvas执行绘图操作  
    }  

3.SurfaceView:优点可以在子线程中进行绘制

    SurfaceHoler holder = surfaceView.getHolder();  
    Canvas canvas = holder.lockCanvas();  
    //利用canvas进行绘图操作  
      
    holder.unlockCanvasAndPost(canvas);//对canvas解锁,并更新  

相关文章

网友评论

      本文标题:Android View之Canvas

      本文链接:https://www.haomeiwen.com/subject/bobulftx.html