1 / 18
文档名称:

android的图像图像绘图-surfaceview.ppt

格式:ppt   页数:18页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

android的图像图像绘图-surfaceview.ppt

上传人:012luyin 2016/7/3 文件大小:0 KB

下载得到文件列表

android的图像图像绘图-surfaceview.ppt

相关文档

文档介绍

文档介绍:android 的图像图像-SurfaceView 类 2017-2-27 View 和 SurfaceView ? View 类是 android 的一个超类,每一个 View 都有一个用于绘画的画布, 这个画布可以进行任意的扩展。有的时候我们需要自定义 VIew 实现自己想要的视图。 view 、 SurfaceView 是游戏开发中经常用到的视图。? View :显示视图,内置画布,提供图形绘制函数、触屏事件、按键事件函数等;必须在 UI主线程内更新画面,速度较慢。? SurfaceView :基于 view 视图进行拓展的视图类,更适合 2D 游戏的开发;是 view 的子类,类似使用双缓机制,在新的线程中更新画面所以刷新界面速度比 view 快。 View 的缺陷? View 缺乏双缓冲机制?当程序需要更新 View 上的图像时,必须重绘 View 上显示的整张图片。 SurfaceView 类? SurfaceView 是从 View 基类中派生出来的显示类,直接子类有 GLSurfaceView 和 VideoView , GL 和视频播放以及 Camera 摄像头一般均使用 SurfaceView. ? SurfaceView 可以控制表面的格式,比如大小、显示在屏幕中的位置,最关键是的提供了 SurfaceHolder 类,使用 getHolder 方法获取,相关的方法有 lockCanvas() 、 lockCanvas(Rect dirty) 、 removeCallback(Callback callback) 、 unlockCanvasAndPost(Canvas canvas) 控制图形以及绘制。?对于 Surface , Android 底层还提供了 GPU 加速功能,所以一般实时性很强的应用中主要使用 SurfaceView 而不是直接从 View 构建,同时 Android 后面用到的 OpenGL 中的 GLSurfaceView 也是从该类实现。 2017-2-27 callback 接口?只要继承 SurfaceView 类并实现 接口就可以实现一个自定义的 SurfaceView , 在底层的 Surface 状态发生变化的时候通知 View , 具有如下的接口: ? surfaceCreated(SurfaceHolder holder) :当 Surface 第一次创建后会立即调用该函数。程序可以在该函数中做些和绘制界面相关的初始化工作,一般情况下都是在另外的线程来绘制界面,所以不要在这个函数中绘制 Surface 。? surfaceChanged(SurfaceHolder holder, int format, int width,int height) :当 Surface 的状态(大小和格式)发生变化的时候会调用该函数, 在 surfaceCreated 调用后该函数至少会被调用一次。注意:一个 SurfaceView 只在 () 和 () 调用之间是可用的,其他时间是得不到它的 Canvas 对象的( null )。 Android-surfaceView 与 View 的区别? SurfaceView 和 View 最本质的区别在于, surfaceView 是在一个新起的单独线程中可以重新绘制画面,而 View 必须在 UI的主线程中更新画面。那么在 UI的主线程中更新画面可能会引发问题,比如更新画面的时间过长,那么主 UI线程会被正在绘制的函数阻塞。那么将无法响应按键、触屏等消息。使用 surfaceView ,由于是在新的线程中更新画面所以不会阻塞 UI主线程。但这也带来了另外一个问题,就是事件同步。比如触屏了一下,需要 surfaceView 中 thread 处理,一般就需要有一个 event queue 的设计来保存 touch event ,这会稍稍复杂一点,因为涉及到线程同步。所以基于以上,根据游戏特点,一般分成两类: (1 ) 被动更新画面的。比如棋类,这种用 view 就好了。因为画面的更新是依赖于 onTouch 来更新,可以直接使用 invalidate 。因为这种情况下,这一次 Touch 和下一次的 Touch 需要的时间比较长些,不会产生影响。(2 ) 主动更新。比如一个人在一直跑动。这就需要一个单独的 thread 不停的重绘人的状态

最近更新

2025年度实习生实习期间安全保障实习劳动协议.. 42页

2025年度安全生产培训与咨询服务合同范本3篇 39页

2025年度学生实习就业实习实训基地实习安全保.. 128页

2025年度存款赠与与新能源开发协议3篇 41页

养老服务业贷款合同协议 3页

农业大数据分析合作协议 3页

农产品电商销售合作合同 3页

2025年度培训机构退学退费风险控制合同3篇 37页

出境游研学旅行合作协议书 3页

2025年度全国煤炭交易居间服务合同3篇 43页

初级农产品与电商平台农产品溯源服务合同 3页

2025年度二零二五年度城市综合体大包建房合同.. 41页

办公室装修合同(含室内空气净化服务) 3页

办公用品采购合同绿色采购与成本效益分析 3页

北京汽车租赁公司与健身俱乐部合作合同 3页

医疗设备代理销售服务合同范本 3页

单间出租合同(含租赁期限提前终止条件) 3页

厂房水电消防设施安全应急预案编制合同 3页

原材料国际采购合同范本 3页

变压器安装工程安全防护及验收合同 3页

商务酒店物业管理与服务协议 3页

国际非政府组织项目劳务输出合同 3页

地暖工程施工与节能产品推广合同 3页

城乡规划与公共安全服务合同 3页

2025年最新中秋节国旗下讲话 6页

城市绿化工程安全生产承包责任书 3页

焦虑自评量表SAS完整 6页

牙体牙髓病用药 53页

升压站调试方案 11页

医疗美容门诊部院感自查 40页