The following code shows how to Draw a Triangle using OpenGL.
Main Activity Java code
package com.java2s.myapplication4.app; /*from ww w . j a v a 2 s.c o m*/ 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; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; import javax.microedition.khronos.opengles.GL10; class Triangle { private FloatBuffer vertexBuffer; private float vertices[] = { 100.0f, 150.0f, 0.0f, // V1 - first vertex (x,y,z) 219.0f, 150.0f, 0.0f, // V2 - second vertex 160.0f, 279.0f, 0.0f // V3 - third vertex }; public Triangle() { ByteBuffer byteBuffer = ByteBuffer.allocateDirect(3 * 3 * 4); byteBuffer.order(ByteOrder.nativeOrder()); vertexBuffer = byteBuffer.asFloatBuffer(); vertexBuffer.put(vertices); vertexBuffer.flip(); } public void draw(GL10 gl) { gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glColor4f(0.0f, 1.0f, 0.0f, 0.5f); gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer); gl.glDrawArrays(GL10.GL_TRIANGLES, 0, vertices.length / 3); gl.glDisableClientState(GL10.GL_VERTEX_ARRAY); } } public class MainActivity extends Activity { private GLSurfaceView glView; private Triangle triangle; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); glView = new GLSurfaceView(this); glView.setRenderer(new MyOpenGLRenderer()); setContentView(glView); } class MyOpenGLRenderer implements Renderer { @Override public void onSurfaceChanged(GL10 gl, int width, int height) { Log.d("MyOpenGLRenderer", "Surface changed. Width=" + width + " Height=" + height); gl.glViewport(0, 0, width, height); gl.glMatrixMode(GL10.GL_PROJECTION); gl.glLoadIdentity(); gl.glOrthof(0, 320, 0, 480, 1, -1); } @Override public void onSurfaceCreated(GL10 gl, EGLConfig config) { Log.d("MyOpenGLRenderer", "Surface created"); triangle = new Triangle(); } @Override public void onDrawFrame(GL10 gl) { gl.glClearColor(0.0f, 0.5f, 0.0f, 1f); gl.glClear(GL10.GL_COLOR_BUFFER_BIT); triangle.draw(gl); } } }