文档介绍:29. }
29. }
Gallery 3D 分析
文章分类:移动开发
Gallery 3D 分析
。
有5个变量,分别是 mX;mY (位置坐标);mWidth;mHeight (宽与高);mHidden
一个抽象方法,非抽象子类都有实现。
Java代码
1. public abstract void generate(RenderView view, lists);
(是否隐藏)
其他的可以在子类中重写
Java代码
1. // Returns true if something is animating.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public boolean update(RenderView view, float framelnterval) {
return false ;
}
public void renderOpaque(RenderView view, GL11 gl) {
}
public void renderBlended(RenderView view, GL11 gl) {
}
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public boolean onTouchEvent(MotionEvent event) { return false ;
}
// Allows subclasses to further constrain the hit test defined by layer
// bounds.
public boolean containsPoint( float x, float y) { return true ;
}
22.
protected
void onSurfaceCreated(RenderView view, GL11 gl) {
29. }
29. }
29. }
29. }
23.
24.
protected
}
27.
void onSizeChanged() {
void onHiddenChanged() {
protected
有好几个类都继承了 Layer抽象类:
BackgroundLayer
CanvasLayer
GridLayer
HudLayer
LoadingLayer
RootLayer
29. }
29. }
其中用到的 RenderView 类
Java代码
1. final class RenderView extends GLSurfaceView implements
er, SensorEventListener
里面有个静态 final类Lists
里面定义了 updateList ,opaqueList , blendedList ,hitTestList ,ystemList 等以 Layer 为对象内容的 ArrayList; 以及一个清空所有ArrayList的方法Clear().
Gallery 3D代码分析之概览
文章分类:移动开发
Gallery 3D UI非常炫,如下图所示:
£Ml t1&] L>l
3辭
5p
00ta
需要明确的几个问题
伪2D还是3D:
gallery3d 基于 android SDK OpenGL ES 接口开发,使用了 Java API,没有使用 NDK
图片如何显示:
在OpenGL ES中,要显示图片,需要定义一个四边形,然后把图片当作 texture贴到四边形上。
布局及特效如何实现:
这是gallery3d的精华所在,需认真分析。
大数据量图片/cache如何实现和管理:
gallery3d有缓冲区的设计,非常不错,需要认真分析。
动画引擎:
简单的讲,动画引擎对外可表现为一个接口:
Java代码
1. float animate( float initVal, float *currentVal, long timeElapsed, long duratio n)
即,给定初始值(initVal),动画引