`
158067568
  • 浏览: 327016 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Surface概述

阅读更多

 

Surface概述

作者:LEGEND

QQ:158067568

进行Android程序编写,在Activity中有一个大家十分熟悉的方法setContentView  (int layoutResID)方法,该方法进行View的设置。不管是view还是widget,这些都是在surface之上。

Surface绘图初步

每一个Surface在实例化是会实例化一个Canvas对象(以后用canvas表示),这个canvas用于管理各个ViewSurfaceView等在Surface上的绘制,可以通过canvasSurface上画点画线。。。

也许这么说可能不能够理解,那我举一个比较形象的例子。假设现在有人邀请我进行画展,如果什么都不给,那巧妇难为无米之炊,确实是不可能的。首先你需要有一个表面,这个表面是你展示自己的画的窗口。而仅仅是这样也不够,你还需要一张画布,在AndroidSurface就是这个表面,而Canvas就是每个表面自带的一张画布。这张画布自己决定呈现给游客什么东西、比如画一个点、画一条线。

在假设一种情况,如果需要展示动画,那么怎么实现呢?众所周知,动画存在是应为人眼的视觉暂留原理,这样我们只要有很多幅画布、然后再快速的切换这些画布就可以达到动画的效果了。但是我们要用多少幅画布才可以达到呢?

其实只需要一幅就够了,Surface通常由两个buffer,一个front buffer,一个back buffer。而back buffer就是Canvas对应的bitmap。每当frong buffer显示时,back buffer就迅速的绘制,然后front buffer迅速将当前的back buffer显示给用户。由于速度十分快,所以便形成了动画效果。

 

 

 

3
0
分享到:
评论
2 楼 jaisok 2012-10-12  
写的很明白
1 楼 158067568 2011-02-13  

相关推荐

Global site tag (gtag.js) - Google Analytics