现在的位置: 首页 > 综合 > 正文

surface 概述

2013年09月06日 ⁄ 综合 ⁄ 共 711字 ⁄ 字号 评论关闭

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

  Surface绘图初步

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

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

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

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

抱歉!评论已关闭.