Android培训课:添加动作
2013-06-12 08:19
239 查看
在屏幕上绘制对象是OpenGL最基本的功能,不过也可以用其他的Android绘图框架的类来做绘制,这些类包括Canvas和Drawable对象等。OpenGL ES提供了更加强大的功能来支持移动和转换被绘制的对象,以三维的方式或其他独特的方式来创建非常有新引力的用户体验。
在本节课,你将迈向OpenGL ES的更深一步,通过学习如何给绘制对象添加旋转动作。
OpenGL ES 2.0旋转一个绘制对象是非常简单的。你需要的是创建另一个转换矩阵(一个旋转矩阵)然后把它与投影和摄像机视角转换矩阵组合:
做完上述这些代码更改后,如果三角形仍未旋转,确认一下你将GLSurfaceView.RENDERMODE_WHEN_DIRTY设置注释掉了。
如果你跟随示例代码到了这里,那么确定你注释掉了仅在requestRender()调用时进行渲染的设置。否则,OpenGL 只会对形状做一下旋转然后就一直等待来自GLSurfaceView容器的requestRender()调用:
如果绘制对象不会在无任何用户交互动作下发生改变,那么通常将RENDERMODE_WHEN_DIRTY设置开启是个比较好的选择。准备好取消注释这行代码吧!因为下节课会重新让该设置可用。
在本节课,你将迈向OpenGL ES的更深一步,通过学习如何给绘制对象添加旋转动作。
旋转一个形状
OpenGL ES 2.0旋转一个绘制对象是非常简单的。你需要的是创建另一个转换矩阵(一个旋转矩阵)然后把它与投影和摄像机视角转换矩阵组合:private float[] mRotationMatrix = new float[16]; public void onDrawFrame(GL10 gl) { ... // 创建一个三角形的旋转转换矩阵 long time = SystemClock.uptimeMillis() % 4000L; float angle = 0.090f * ((int) time); Matrix.setRotateM(mRotationMatrix, 0, mAngle, 0, 0, -1.0f); // 将旋转矩阵和投影和摄像机视角转换矩阵组合 Matrix.multiplyMM(mMVPMatrix, 0, mRotationMatrix, 0, mMVPMatrix, 0); // 绘制三角形 mTriangle.draw(mMVPMatrix); }
做完上述这些代码更改后,如果三角形仍未旋转,确认一下你将GLSurfaceView.RENDERMODE_WHEN_DIRTY设置注释掉了。
启动持续渲染
如果你跟随示例代码到了这里,那么确定你注释掉了仅在requestRender()调用时进行渲染的设置。否则,OpenGL 只会对形状做一下旋转然后就一直等待来自GLSurfaceView容器的requestRender()调用:public MyGLSurfaceView(Context context) { ... // 仅当绘制数据发生改变时执行渲染 //setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); // 为执行旋转而注释掉 }
如果绘制对象不会在无任何用户交互动作下发生改变,那么通常将RENDERMODE_WHEN_DIRTY设置开启是个比较好的选择。准备好取消注释这行代码吧!因为下节课会重新让该设置可用。
相关文章推荐
- Android实现ViewPager滑屏动作并添加动画效果
- Android监听事件添加动作的四种方式
- android中监听事件添加动作
- Android Fragments详解五:与Activity通讯,把条目添加到动作栏
- android监听事件添加动作的三种方式
- Android---OpenGL ES之添加动作
- Android OpenGL ES 入门系列(六) --- 为绘制对象添加动作
- OpenGL ES2.0入门之Android篇(二)——添加动作及触摸事件
- Android-在动作栏中添加和删除选项卡
- android监听事件添加动作的三种方式
- Android Training - 使用OpenGL ES(5) - 添加动作
- Android-在动作栏中添加“设置图标”
- Android---OpenGL ES之添加动作
- Android Fragment---给动作栏添加项目
- cocos2d-android——给精灵添加动作
- Android Fragment---给动作栏添加项目
- Android Fragment---给动作栏添加项目
- Android开发--身高体重指数(BIM)计算--添加菜单(Menu)(菜单功能、创建菜单、处理选项动作)
- Android Fragment---给动作栏添加项目
- android 开发零起步学习笔记(十二):android监听事件添加动作的三种方式