Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 843|回复: 0

gallery3d 代码分析之概览-  Android学习

[复制链接]

该用户从未签到

发表于 2011-10-24 14:58:40 | 显示全部楼层 |阅读模式
简介
gallery3d 是 Google Nexus one 手机上的媒体浏览程序,它的 3D UI 非常眩, 如下图所示:








需要明确的几个问题伪 2D 还是 3D:
gallery3d 基于 android SDK OpenGL ES 接口开发,使用了 java API,没有使用 NDK。
图片如何显示:
在 OpenGL ES 中,要显示图片,需要定义一个四边形,然后把图片当作 texture 贴到四边形上。
布局及特效如何实现:
这是 gallery3d 的精华所在,需认真分析。
大数据量图片/cache 如何实现和管理:
gallery3d 有缓冲区的设计,非常不错,需要认真分析。
动画引擎:
简单的讲,动画引擎对外可表现为一个接口:

float animate(float initVal, float *currentVal, long timeElapsed, long duration)
复制代码
即,给定初始值(initVal),动画引擎根据逝去的时间(timeElapsed)和动画总时间(duration)计算下一帧对应的值(currentVal),这个值可能是位置坐标,也可能是一个矩阵 matrix,或者是其它的属性。显示一帧就调用该函数更新actor的属性,各个帧连起来显示就成了动画。3D坐标与2D坐标的转换:这个需要仔细分析。使用缓冲区对象 (GL_OES_vertex_buffer_object)OpenGL ES 中的顶点数组使得几何图元的显示方便了很多,但是如果每次都要向 OPENGL 发送一大块数据,而这数据其实并没有修改过,那么这传输就是冗余的。所以这里添加了缓冲区对象,将顶点数组存储在服务器端的缓冲区对象中。gallery3d 使用了缓冲区对象来保存顶点数据。构件图gallery3d 的基本构件组成及其关系如下所示:  
构件图
回复

使用道具 举报

该用户从未签到

发表于 2011-10-24 14:58:44 | 显示全部楼层

Re:gallery3d

做得不错,很好啊
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2011-10-24 14:58:47 | 显示全部楼层

Re:gallery3d

还得细细尝试下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2025-1-11 14:20 , Processed in 0.405182 second(s), 36 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表