android:surfaceview小实例
2012-08-01 13:46
197 查看
package com.chnfuture.viewporttest; import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.FloatBuffer; 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.view.Window; import android.view.WindowManager; public class MainActivity extends Activity { GLSurfaceView glView; @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 SimpleRenderer()); setContentView(glView); } class SimpleRenderer implements Renderer { @Override public void onDrawFrame(GL10 gl) { ByteBuffer byteBuffer = ByteBuffer.allocateDirect(6 * 2 * 4); byteBuffer.order(ByteOrder.nativeOrder()); FloatBuffer vertices = byteBuffer.asFloatBuffer(); // 定义两个三角形的六个顶点 vertices.put(new float[] { 120.0f, 200.0f, 360.0f, 200.0f, 360.0f, 600.0f, 120.0f, 200.0f, 360.0f, 600.0f, 120.0f, 600.0f }); vertices.flip(); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); gl.glVertexPointer(2, GL10.GL_FLOAT, 0, vertices); gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3); gl.glDrawArrays(GL10.GL_TRIANGLES, 3, 3); } @Override public void onSurfaceChanged(GL10 arg0, int arg1, int arg2) { } @Override public void onSurfaceCreated(GL10 gl, EGLConfig arg1) { gl.glClearColor(0,0,1,1); gl.glColor4f(1.0f, 0.0f, 0.0f, 0.0f); gl.glClear(GL10.GL_COLOR_BUFFER_BIT); // 整个屏幕作为视口 gl.glViewport(0, 0, 480, 800); //gl.glViewport(0, 0, 240, 400); gl.glMatrixMode(GL10.GL_PROJECTION); gl.glLoadIdentity(); gl.glOrthof(0, 240, 0, 400, 1, -1); } } }
相关文章推荐
- Android App中使用SurfaceView制作多线程动画的实例讲解
- [Android] SurfaceView使用实例
- Android提高之SurfaceView与多线程的混搭实例
- Android仿微信清理内存图表动画(解决surfaceView屏幕闪烁问题)demo实例详解
- Android-SurfaceView+VideoView视频播放器实例
- Android学习历程15-SurfaceView的简单用法(实例:幸运抽奖以及控制中奖物品)
- Android之SurfaceView解释+实例
- Android游戏开发教程之八:SurfaceView类的应用实例
- 基于 SurfaceView 详解 android 幸运大转盘,附带实例app
- [Android] SurfaceView使用实例(正余弦移动)
- Android使用SurfaceView进行涂鸦的开发实例
- Android提高之SurfaceView的基本用法实例分析
- 17、Android之SurfaceView实例自定义SurfaceView的应用——小球跟着手指移动
- 【Android应用实例之三】跟随手指的小球——自定义SurfaceView应用
- 学习笔记--android中surfaceview 简单用法实例:画板。
- Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的联系 && camera的takePicture实例
- Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback之间的联系 && camera的takePicture实例
- [Android] SurfaceView使用实例
- Android中SurfaceView用法简单实例
- Android图形系统之Surface、SurfaceView、SurfaceHolder及SurfaceHolder.Callback开发实例