Android OpenGL 教程——窗口初始化&绘制矩形
发布人:shili8
发布时间:2025-02-21 13:59
阅读次数:0
**Android OpenGL 教程——窗口初始化&绘制矩形**
在本教程中,我们将学习如何使用 Android 的 OpenGL 库来创建一个简单的窗口,并在其中绘制一个矩形。
###1. 创建新项目首先,我们需要在 Android Studio 中创建一个新的项目。选择 "Empty Activity" 模板,填写必要信息,然后点击 "Next" 和 "Finish" 按钮。
###2. 添加 OpenGL 库在项目的 build.gradle 文件中添加以下代码:
groovydependencies {
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.google.android.gms:play-services-base:16.1.0'
implementation 'com.google.android.gms:play-services-gcm:16.1.0'
implementation 'com.google.android.gms:play-services-ads:17.2.0'
}
###3. 创建 OpenGLSurfaceView创建一个新的 Java 类,名为 `MyGLSurfaceView`:
javaimport android.content.Context;
import android.opengl.GLSurfaceView;
public class MyGLSurfaceView extends GLSurfaceView {
public MyGLSurfaceView(Context context) {
super(context);
setEGLContextClientVersion(2.0); // OpenGL ES2.0 setRenderer(new MyRenderer());
}
}
###4. 创建 Renderer创建一个新的 Java 类,名为 `MyRenderer`:
javaimport android.opengl.GLSurfaceView;
import javax.microedition.khronos.opengles.GL10;
public class MyRenderer implements GLSurfaceView.Renderer {
@Override public void onSurfaceCreated(GL10 gl, javax.microedition.khronos.opengles.GLU glu) {
// Initialize OpenGL context gl.glClearColor(0.0f,0.0f,0.0f,1.0f); // Set background color to black }
@Override public void onSurfaceChanged(GL10 gl, int width, int height) {
// Update viewport size gl.glViewport(0,0, width, height);
}
@Override public void onDrawFrame(GL10 gl) {
// Draw a rectangle gl.glClear(GL10.GL_COLOR_BUFFER_BIT); // Clear screen gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(0.0f,1.0f,0.0f,1.0f, -5.0f,5.0f); // Set up orthographic projection gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
float[] vertices = {
0.2f,0.9f,
0.8f,0.9f,
0.8f,0.1f,
0.2f,0.1f };
gl.glVertexPointer(2, GL10.GL_FLOAT,0, vertices);
int[] colors = {
255,0,0, // Red0,255,0, // Green0,0,255, // Blue255,255,0 // Yellow };
gl.glColorPointer(4, GL10.GL_UNSIGNED_BYTE,0, colors);
gl.glDrawArrays(GL10.GL_QUADS,0,4);
}
}
###5. 在 Activity 中使用 OpenGLSurfaceView在 `MainActivity` 中,使用以下代码:
javaimport android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyGLSurfaceView glSurfaceView = new MyGLSurfaceView(this);
setContentView(glSurfaceView);
}
}
###6. 运行应用运行应用,打开 OpenGLSurfaceView。您应该看到一个黑色背景上的红色矩形。
本教程展示了如何使用 Android 的 OpenGL 库来创建一个简单的窗口,并在其中绘制一个矩形。

