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 库来创建一个简单的窗口,并在其中绘制一个矩形。