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显示给用户。由于速度十分快,所以便形成了动画效果。

更多相关文章

  1. Activity跳转时 进入和出去的动画
  2. Android(安卓)5.0——Material Design详解(动画篇)
  3. android 自定义dialog 带动画的
  4. Android(安卓)popupwindow弹出对话框
  5. Android开机界面logo
  6. Android(安卓)ViewPager切换的N种动画
  7. 简易音乐播放器(Android(安卓)Studio)
  8. MPAndroidChart 教程:动画 Animations(十)
  9. ViewAnimator教程

随机推荐

  1. Android(安卓)中Handler引起的内存泄露
  2. Android点击两次返回键,退出应用程序
  3. Android中使用Animation实现控件的动画效
  4. 使用ddmlib实现android 性能监控
  5. android binder c++层 - 回调客户端服务
  6. Android中自定义Checkbox
  7. Android Developers:日历提供者
  8. Android下载网络图片到本地
  9. android如何改变默认横竖屏方向
  10. Android判断当前系统语言