基础框架

packagecom.example.opengl;importandroid.app.Activity;importandroid.os.Bundle;importjavax.microedition.khronos.egl.EGLConfig;importjavax.microedition.khronos.opengles.GL10;importandroid.opengl.GLSurfaceView;publicclassMainActivityextendsActivity{GLSurfaceViewmView;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//setContentView(R.layout.activity_main);mView=newGLSurfaceView(this);mView.setRenderer(newClearRenderer());setContentView(mView);}@OverrideprotectedvoidonPause(){super.onPause();mView.onPause();}@OverrideprotectedvoidonResume(){super.onResume();mView.onResume();}}classClearRendererimplementsGLSurfaceView.Renderer{publicvoidonSurfaceCreated(GL10gl,EGLConfigconfig){//Donothingspecial.}publicvoidonSurfaceChanged(GL10gl,intw,inth){gl.glViewport(0,0,w,h);}publicvoidonDrawFrame(GL10gl){gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);}}

扩展:获取输入事件

packagecom.example.opengl;importandroid.app.Activity;importandroid.os.Bundle;publicclassMainActivityextendsActivity{GL2JNIViewmView;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);//setContentView(R.layout.activity_main);mView=newGL2JNIView(getApplication());setContentView(mView);}@OverrideprotectedvoidonPause(){super.onPause();mView.onPause();}@OverrideprotectedvoidonResume(){super.onResume();mView.onResume();}}
packagecom.example.opengl;importandroid.annotation.SuppressLint;importandroid.content.Context;importandroid.opengl.GLSurfaceView;importjavax.microedition.khronos.egl.EGLConfig;importjavax.microedition.khronos.opengles.GL10;importandroid.view.MotionEvent;classGL2JNIViewextendsGLSurfaceView{RenderermRenderer;publicGL2JNIView(Contextcontext){super(context);//setEGLContextFactory();//setEGLConfigChooser();mRenderer=newRenderer();setRenderer(mRenderer);}@SuppressLint("ClickableViewAccessibility")publicbooleanonTouchEvent(finalMotionEventevent){queueEvent(newRunnable(){publicvoidrun(){mRenderer.setColor(event.getX()/getWidth(),event.getY()/getHeight(),1.0f);}});returntrue;}privatestaticclassRendererimplementsGLSurfaceView.Renderer{publicvoidonDrawFrame(GL10gl){//GL2JNILib.step();gl.glClearColor(mRed,mGreen,mBlue,1.0f);gl.glClear(GL10.GL_COLOR_BUFFER_BIT|GL10.GL_DEPTH_BUFFER_BIT);}publicvoidonSurfaceChanged(GL10gl,intwidth,intheight){//GL2JNILib.init(width,height);gl.glViewport(0,0,width,height);}publicvoidonSurfaceCreated(GL10gl,EGLConfigconfig){//Donothing.}publicvoidsetColor(floatr,floatg,floatb){mRed=r;mGreen=g;mBlue=b;}privatefloatmRed;privatefloatmGreen;privatefloatmBlue;}}


更多相关文章

  1. googlemap学习
  2. Android(安卓)获取当前连接的WiFi信息
  3. 运用IntentService类下载文件
  4. ImageAdapter和PopupWindow的使用
  5. 获取Bitmap和对Bitmap的操作工具类
  6. android 下获取apk的icon
  7. 【Content Provider】一个完整的ContentProvider框架
  8. Android(安卓)7.0之后无摄像头调用闪关灯
  9. android 获取rom名称和版本号

随机推荐

  1. [置顶] 浅谈Android五大布局——L
  2. Android 启动系统相机,相册,裁剪图片及6.0
  3. Android App性能信息获取方法
  4. 物流货运移动APP解决方案
  5. Android开发重要参考资料
  6. Android调用百度地图Web端接口,实现百度定
  7. 解决Android Studio运行编译时间久的最有
  8. 直接拿来用!十大Material Design开源项目
  9. Android Studio获取数字签名(SHA1)的方法
  10. Android Volley:使用方法总结及实例解析