没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Gallery 3D 分析
文章分类:移动开发
Gallery 3D 分析
1.Layer 是个抽象类。
有 5 个变量,分别是 mX;mY(位置坐标);mWidth;mHeight(宽与高);mHidden (是否隐藏);
一个抽象方法,非抽象子类都有实现。
Java 代码
1. publicabstractvoidgenerate(RenderViewview,RenderView.Listslists)
;
其他的可以在子类中重写
Java 代码
1. //Returnstrueifsomethingisanimating.
2. publicbooleanupdate(RenderViewview,floatframeInterval){
3. returnfalse;
4. }
5.
6. publicvoidrenderOpaque(RenderViewview,GL11gl){
7. }
8.
9. publicvoidrenderBlended(RenderViewview,GL11gl){
10. }
11.
12. publicbooleanonTouchEvent(MotionEventevent){
13. returnfalse;
14. }
15.
16. //Allowssubclassestofurtherconstrainthehittestdefinedbyl
ayer
17. //bounds.
18. publicbooleancontainsPoint(floatx,floaty){
19. returntrue;
20. }
21.
22. protectedvoidonSurfaceCreated(RenderViewview,GL11gl){
23. }
24.
25. protectedvoidonSizeChanged(){
26. }
27.
28. protectedvoidonHiddenChanged(){
29. }
有好几个类都继承了 Layer 抽象类:
BackgroundLayer
CanvasLayer
GridLayer
HudLayer
LoadingLayer
RootLayer
其中用到的 RenderView 类
Java 代码
1. finalclassRenderViewextendsGLSurfaceViewimplementsGLSurfaceView.
Renderer,SensorEventListener
里面有个静态final 类Lists
里面定义了 updateList,opaqueList,blendedList,hitTestList,systemList 等以 Layer 为对象内容的
ArrayList;以及一个清空所有 ArrayList 的方法 Clear().
Gallery 3D 代码分析之概览
文章分类:移动开发
Gallery 3D UI 非常炫,如下图所示:
需要明确的几个问题
伪2D 还是3D:
gallery3d 基于android SDK OpenGL ES 接口开发,使用了Java API,没有使用NDK。
图片如何显示:
在OpenGL ES 中,要显示图片,需要定义一个四边形,然后把图片当作texture 贴到四边形上。
布局及特效如何实现:
这是gallery3d 的精华所在,需认真分析。
大数据量图片/cache 如何实现和管理:
gallery3d 有缓冲区的设计,非常不错,需要认真分析。
动画引擎:
简单的讲,动画引擎对外可表现为一个接口:
Java 代码
1. floatanimate(floatinitVal,float*currentVal,longtimeElapsed,long
duration)
即,给定初始值(initVal),动画引擎根据逝去的时间(timeElapsed)和动画总时间(duration)计算下一帧
对应的值(currentVal),这个值可能是位置坐标,也可能是一个矩阵matrix,或者是其它的属性。显示一
帧就调用该函数更新 actor 的属性,各个帧连起来显示就成了动画。
3D 坐标与 2D 坐标的转换:
这个需要仔细分析。
使用缓冲区对象(GL_OES_vertex_buffer_object)
OpenGL ES 中的顶点数组使得几何图元的显示方便了很多,但是如果每次都要向 OPENGL 发送一大
块数据,而这数据其实并没有修改过,那么这传输就是冗余的。所以这里添加了缓冲区对象,将顶点数
组存储在服务器端的缓冲区对象中。
gallery3d 使用了缓冲区对象来保存顶点数据。
参考:
Nexus One Gallery on Android
构件图
gallery3d 的基本构件组成及其关系如下所示:
Gallery 3D 代码分析之 GLSurfaceView
文章分类:移动开发
简介
SDK 中的 android.opengl.GLSurfaceView 类提供如下功能:
在OpenGL ES 和View 系统之间建立联系;
使得OpenGL ES 可以工作在Activity 生命周期中;
可选择合适的frame buffer 像素格式;
创建并管理一个单独的渲染线程,可以实现平滑的动画;
提供 debugging 工具和API。
剩余53页未读,继续阅读
资源评论
lzg06003501
- 粉丝: 0
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功