android菜鸟飞翔之路——SurfaceView学习

原创 2013年12月04日 16:44:47

         SurfaceView继承自View,但它与View不同,View是在UI的主线程中更新画面的,而SurfaceView是在一个新线程中更新画面。View的特性决定了它不适合做动画,因为如果画面时间过长,那么住UI线程就会被正在画的函数阻塞。所以Android中通常用SurfaceView显示动画效果。

       新建一个类,继承SurfaceView,同时实现SurfaceHolder.Callback接口,就创建了带有生命周期的回调函数并实现了SurfaceView的类。实现了SurfaceHolder.Callback接口后SurfaceView中三个重要的生命周期回调函数:

1.public abstract void surfaceCreated(SurfaceHolder holder)在SurfaceView创建时调用该函数。

2.public abstract void surfaceChanged(SurfaceHolder holder, int format, int width, int height),在SurfaceView改变时调用该函数。

3.public abstract void surfaceDestroyed(SurfaceHolder holder)在SurfaceView销毁前调用该函数。

       SurfaceView中最重要的方法应该是protected void onDraw(Canvas canvas),它是用来绘制SurfaceView画面的,其中的参数canvas 是该SurfaceView的画笔。每一次SurfaceView中画面的改变都是调用了该方法。

       通常方法是:新建一个线程类,每隔一个周期用一次SurfaceViewdeOnDraw()方法,而OnDraw()方法中的画面也有一个线程在时时改变,这样后一个线程类实现了OnDraw()画面中显示内容的变化,前一个线程类时时刷新画面,这就形成了动画。

 

Mysql 命令行的简单操作by弱菜的进击之道

一般来说 你安装完mysql之后 我们就可以尝试着简单的操作了。 下面ra
  • zsq66zsq
  • zsq66zsq
  • 2014-06-26 13:48:14
  • 474

雪飞翔造价软件

  • 2012年12月12日 14:40
  • 685KB
  • 下载

android菜鸟学习之路

一路走来很不容易,刚好知乎上被人邀请回答如何自学android编程, 就借这个机会在知乎上记录一路走来的历程,很励志,希望能给那些正在或准备走编程行业的人一些正能量,内容有点长,感兴趣的可以当做励志小...
  • u012948731
  • u012948731
  • 2015-09-14 10:25:51
  • 133

Qt学习之路源码

  • 2016年01月20日 14:37
  • 7.1MB
  • 下载

Android菜鸟学习之路——Activity生命周期

Activity的三种状态: Resumed:Activity显示在屏幕上,居于前台,并且获取用户焦点。通常也被成为“running”状态 引用一个常用的Activity生命周期图:...
  • weixin_32720147
  • weixin_32720147
  • 2016-09-02 23:51:45
  • 51

android菜鸟的学习求职之路

作为一名,android菜鸟,经历了4个月,高强度的学习深造(每天早上9点学到晚上9点),敲了近10万行代码,从最简单的short,int ,long,学到了if,where,for,再后来,知道什么...
  • lucky19920401
  • lucky19920401
  • 2016-06-27 19:22:36
  • 229

QT学习之路2 (1~82篇)

  • 2014年11月02日 18:40
  • 5.67MB
  • 下载

Qt学习之路系列教程目录

导语 《Qt 学习之路》是在网络上受到一定欢迎的 Qt 入门教程。只是这个系列便携与 2009 年,至今已经有三年多的时间。今天的 Qt 有了很大的变化,包括 Qt Quick 的加入、...
  • u014365862
  • u014365862
  • 2016-11-23 21:46:24
  • 10043

《Qt学习之路2》2014年6月最新完整版带目录

  • 2014年06月07日 00:02
  • 3.97MB
  • 下载

SurfaceView+MediaPlayer封装之路

SurfaceView+MediaPlayer封装之路我的播放器叫做JsPlayer,喜欢的话,就给个star喽^_^https://github.com/shuaijia/JsPlayer这里我只介...
  • jiashuai94
  • jiashuai94
  • 2017-09-18 16:50:18
  • 9435
收藏助手
不良信息举报
您举报文章:android菜鸟飞翔之路——SurfaceView学习
举报原因:
原因补充:

(最多只允许输入30个字)