Android图形处理.ppt
《Android图形处理.ppt》由会员分享,可在线阅读,更多相关《Android图形处理.ppt(20页珍藏版)》请在三一文库上搜索。
1、内容,Android图形系统概述 Adnroid动画处理 Frame动画 Tween动画,Copyright 2010 By Neusoft Group. All rights reserved,Android图形系统概述,Android中的图形系统采用Client/Server架构。SurfaceFlinger 在整个图形系统中担任 server 角色,它负责将各个 surface 根据 Z order 合成 (composer) 起来。负责Surface的建立、控制、管理等功能。 Surface在Android中的本意是提供一个供显示使用的界面,其他程序可以在这个界面上进行显示输出。Sur
2、face系统可以实现多层的Surface,这样对于每一个程序调用者,都可以认为是在独有的界面上进行绘制;而多层次的叠加和管理,则由Surface系统来完成。View及其子类(如TextView, Button,ImageView)要画在surface上。每个surface创建一个Canvas对象,用来管理view在surface上的绘图操作,如画点画线。每个canvas对象对应一个bitmap,存储画在surface上的内容。,Copyright 2010 By Neusoft Group. All rights reserved,Android图形系统概述,Skia是Google一个底层的图
3、形,图像,动画,SVG,文本等多方面的图形库,它是Android中图形系统的引擎。最主要的API是SkCanvas类。,Android图形系统概述,对于2D图形处理,Android并没有使用Java的图形处理类,而是自定义了一系列的2D图形处理类,这些类分别位于android.graphics,android.graphics.drawable.shapes和android.view.animation包中。 对于3D图形的处理,Android集成了OpenGL ES 提供的高效3D图形处理技术,这些类分别位于javax.microedition.khronos.opengles和androi
4、d.opengl包中。,Copyright 2010 By Neusoft Group. All rights reserved,Android图形系统概述,Android系统中的图形处理基本上可以分为两类: 一类是静态图形处理,也就是这些图片不经常变化,例如,一些图标,logo等,针对这些图形的处理,一般是将图形作为资源文件添加到工程当中,然后通过各种Drawable类来处理使用。 另一类是动态图形处理,也就是这些图片要经常变化(包括大小,位置,形状等)需要不断地进行绘制。例如翻书效果。,Android动画处理,现有的 Android 动画框架是建立在 View 的级别上的。 要了解 And
5、roid 动画是如何画出来的,我们首先要了解 Android 的 View 是如何组织在一起,以及他们是如何画自己的内容的。,Android动画处理,DecorView是window的Top-level View,称之为主View。是整个ViewTree的根节点。DecorView会缺省的 attach 到 Activity 的主窗口中。 ViewRoot 不是View,它本质上是一个 Handler,ViewRoot 是建立主View与 WindowsManger 通讯 的桥梁 。,Android动画处理,Android动画处理,递归的绘制整个窗口需要按顺序执行以下几个步骤 绘制背景 如果需
6、要,保存画布(canvas)的层(Layer),为淡入或淡出做准备; 绘制 View 本身的内容,通过调用 View.onDraw(canvas) 函数实现. 绘制自己的孩子(通常也是一个 view 系统),通过 dispatchDraw(canvas) 实现,参看 ViewGroup.Java 中的代码可知,dispatchDraw-drawChild-child.draw(canvas) 这样的调用过程被用来保证每个子 View 的 draw 函数都被调用,通过这种递归调用从而让整个 View 树中的所有 View 的内容都得到绘制。在调用每个子 View 的 draw 函数之前,需要绘制
7、的 View 的绘制位置是在 Canvas 通过 translate 函数调用来进行切换的,窗口中的所有 View 是共用一个 Canvas 对象 如果需要,绘制淡入淡出相关的内容并恢复保存的画布所在的层(layer) 绘制修饰的内容(例如滚动条).,备注:当一个 ChildView 要重画时,它会调用其成员函数 invalidate() 函数将通知其 ParentView 这个 ChildView 要重画,这个过程一直向上遍历到 ViewRoot,当 ViewRoot 收到这个通知后就会调用上面提到的 ViewRoot 中的 draw 函数从而完成绘制。,Android动画处理,一种是Twe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 图形 处理
链接地址:https://www.31doc.com/p-2976137.html