android opengl es 2d,Android中使用OpenGL ES进行2D开发(GLSurfaceView)

本文介绍了如何在Android中通过GLSurfaceView与OpenGLES进行交互,展示了一个简单的示例,创建了一个全屏红色的屏幕。GLSurfaceViewTest.java类中,设置了一个GLSurfaceView并实现了Renderer接口,覆盖了onSurfaceCreated(), onSurfaceChanged()和onDrawFrame()方法,用以设置颜色和绘制帧。通过这个例子,读者可以理解Android OpenGL ES的基础用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们知道OpenGL一般是在C,C++中应用,那么Android如何跟OpenGL ES对接的呢?

是用GLSurfaceView,今天我们的主角

1 interface GLSurfaceView.Renderer {

2 public void onSurfaceCreated(GL10 gl, EGLConfig config);

3 public void onSurfaceChanged(GL10 gl, int width, int height);

4 public void onDrawFrame(GL10 gl);

5 }

在Android中有上面代码中涉及到的接口(interface)

现在来看下我们一个简单的示例的效果,整个红色的屏幕

bb06fd75e85db4da319a62db67ac1b47.png

我们来看下完整的代码 GLSurfaceViewTest.java, 路径src/com.waitingfy.android.glbasics/GLSurfaceViewTest.java

package com.waitingfy.android.glbasics;

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;

import android.util.Log;

import android.view.Window;

import android.view.WindowManager;

public class GLSurfaceViewTest extends Activity {

GLSurfaceView glView;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//去掉activity的标题,全屏显示

requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

WindowManager.LayoutParams.FLAG_FULLSCREEN);

glView = new GLSurfaceView(this);

glView.setRenderer(new SimpleRenderer());

setContentView(glView);

}

@Override

public void onResume() {

super.onPause();

glView.onResume();

}

@Override

public void onPause() {

super.onPause();

glView.onPause();

}

static class SimpleRenderer implements Renderer {

@Override

public void onSurfaceCreated(GL10 gl, EGLConfig config) {

Log.d("GLSurfaceViewTest", "surface created");

}

@Override

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

Log.d("GLSurfaceViewTest", "surface changed: " + width + "x"

+ height);

}

@Override

public void onDrawFrame(GL10 gl) {

//设置颜色为红色(glClearColor(float red, float green, float blue, float alpha)

gl.glClearColor(1, 0, 0, 1);

gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

}

}

}

非常清晰的代码,好了有关GLSurfaceView的内容就到这里

下面是示例代码下载:gl-basics

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值