下载此文档

android学习笔记.doc


文档分类:IT计算机 | 页数:约13页 举报非法文档有奖
1/13
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/13 下载此文档
文档列表 文档介绍
Android学习心得和小总结
最近学习的一些小知识进行一下小总结:
surface的使用
使用surface时,包含了三个类的使用,分别是surface,surfaceView,SurfaceHolder.
Sueface类:每一个surface在系统内部都对应了一段单独的视频缓冲区,surface就是这段缓冲区的一个类描述,可以通过surface提供的方法直接给这段缓冲区上绘图。
SurfaceHolder类:该类是一个接口,主要是抽象出用于控制其对应的surface的标准方法。
surfaceView类:surface本身并不是和GUI协同工作的,GUI需要为应用程序单独分配一段显示区,而这段显示区在一定程度上还要受到GUI的管理,比如,创建,销毁显示区;同时该显示区在一定程度上还需要和其他视图之间具有某种联系,以备GUI重新绘制界面时所需,而surface本身是一段显示缓冲区,内部并不具备这些操作的属性,surfaceView就是为满足这些操作而设计的。
3者的关系可如下所示:
GUI系统——>surfaceView——>surface
应用程序——>surfaceHolder——>surface
GUI系统通过surfaceView来操作surface,而应用程序则是通过surfaceHolder来操作surface,一般情况下,无论是应用程序还是系统,都不直接调用surface这个接口。
从单纯绘制界面的角度来看surface,在标准的GUI视图中,要绘制对应的界面只能在onDraw()方法中,因为只有在onDraw()方法中才能得到画布canvas对象。对于surface来讲,处于应用程序的考虑,子程序可以获得一个独立的surface对象,可以随时任意的绘制界面。因此surface有一个获取画布的接口,lockCanvas(),该方法返回此surface对应的画布,子程序是可以自由的享受这个surface,满足应用的界面需求。
使用surface的大多数场合是游戏开发,因为在游戏开发中,往往需要一些特别地界面元素,包括图形,变换和动画等内容。如何在surface上绘图:::
声明surface,<surfaceView>关键字定义一个Surface对象,就像是用Button定义一个按钮一样,在xml中声明一个surface以后,调用SetContentView()方法创建该对象时,系统不会立即创建,即surface的创建时异步的,只有当surface创建好之后,用户才能使用该surface,子程序绘制surface时,一般通过surfaceHolder对象,每个surface对应一个Holder,当surface创建好后,会回调对应的Holder对象定义的回调函数,。
该接口包含了三个方法,分别是:
SurfaceCreated(),当surface创建好后,会调用该函数,一般可以在干函数内部设置一个系统变量,用于标识surface是否创建好。
Public void surfaceCreated(SurfaceHolder holder){
msurfaceExsit=true;
}
surfaceChanged(),当surface的界面大小改变时,调用该方法。
surfaceDestroy();当surface对象被销毁时时,调用该方法。
在实际的游戏当中,往往会启动另一个线程用以控制surface内部的显示和用户交互,而在创建该线程时,只需要传递surface对应的surfaceHolder即可,同时,可以为子程序创建一个Handler对象,主线程可以通过该Handler对象像子程序传递用户的按键消息。
总结:
Surface是android的一个重要元素,用于android画面的图形绘制。
SurfaceView是视图(View)的一个继承类,每一个SurfaceView都内嵌封装一个Surface。通过调用SurfaceHolder可以调用SurfaceView,控制图形的尺寸和大小。
SurfaceHolder 是通过getholder()来取得。
创立SurfaceHolder 对象后,()来回调SurfaceHolder,对SurfaceView进行控制。
多线程
Android 的多线程是基于Linux本身的多线程机制,而多线程机制之间的同步又是通过java本身的线程同步,线程是运行在同一地址空间的不同调度单元,有自己的堆栈空间,而进程是运行在独立的,彼此之间互不察觉的不同调度单元。

android学习笔记 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数13
  • 收藏数0 收藏
  • 顶次数0
  • 上传人phl806
  • 文件大小118 KB
  • 时间2017-07-23