您的位置:首页 > 移动开发 > Android开发

Android高级进阶三 Android OpenGL | ES开发框架

2012-01-04 22:12 495 查看
最新版本:Android高级进阶三
Android OpenGL | ES开发框架


在Android3d开发中,纵然Android给我们提供了一个GL10的类来实现3D开发实例,但是开发人员一般会使用更好的GLSurfaceView来更好的显示OpenGL视图,所以我们鉴于此,我们也使用GLSurfaceView来开发OpenGL,而在GLSurfaceView中则包含了一个专门用于3D的接口Render,所以在使用GLSurfaceView之前,我们必须构建一个自己的Render。

在上面Render对象中,我们需要实现下述方法:

public class GLRender implements Renderer{

所有的绘图工作就在此完成

@Override

public void onDrawFrame(GL10 gl) {

// TODO Auto-generated method stub

}

当窗口发生改变时,调用下述方法,但无论窗口是否发生变化,这个应该在程序开始时运行一次

@Override

public void onSurfaceChanged(GL10 gl, int width, int height) {

// TODO Auto-generated method stub

}

当窗口创建的时候,我们可以在onSurfaceCreated中对OpenGL做一些初始化工作

@Override

public void onSurfaceCreated(GL10 gl, EGLConfig config) {

// TODO Auto-generated method stub

}

}

所以一个完整的Android OpenGL开发框架就应该如下:

org.ourunix.android.opengltest;

import javax.microedition.khronos.egl.EGLConfig;

import javax.microedition.khronos.opengles.GL10;

import android.app.Activity;

import android.opengl.GLSurfaceView;

import android.opengl.GLSurfaceView.Renderer;

import android.os.Bundle;

public class OpenGLTestActivity extends Activity {

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

GLSurfaceView glView = new GLSurfaceView(this);

Renderer render = new GLRender();

glView.setRenderer(render);

setContentView(glView);

}

public class GLRender implements Renderer{

@Override

public void onDrawFrame(GL10 gl) {

// TODO Auto-generated method stub

}

@Override

public void onSurfaceChanged(GL10 gl, int width, int height) {

// TODO Auto-generated method stub

}

@Override

public void onSurfaceCreated(GL10 gl, EGLConfig config) {

// TODO Auto-generated method stub

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: