看到苹果应用商店的火爆,也想做点东西放在上面,现在终于有点时间,可是发现用到的技术都不会,要学的东西很多呀(真是落伍了)~

身为一个JAVA程序员,IOS完全不懂,Android只会一些皮毛,OpenGL更是一窍不通。
所有的东西肯定都是以JAVA思想来写,掺杂着自己的理解,肯定有不对的地方,大家就凑合着看吧。

这次的学习打算分三步:

  ①在Android上学习使用OpenGL ES
  ②将Android做的OpenGL ES应用移植到IOS上
  ③将应用发布到苹果应用商店及Google应用商店上。

今天的目标是:在Android上搭建一个能够显示OpenGL图形的环境

开发工具:
  ADT (Android Development Tools)⇒ 一个基于Eclipse的Android开发工具

调试工具:
  一台Android 4.0以上版本的手机  ⇒  据说ADT自带虚拟机无法调试OpenGL ES应用

*Eclipse的具体使用方法,在这次的学习笔记里不会进行详细说明

打开ADT后,首先新建一个Android Application Project

零基础开发OpenGL ES 2.0学习笔记-Android篇(一)_第1张图片

  Application Name : 应用名称,显示在手机图标下的文字
  Project Name : Eclipse内部的工程名
  Package Name : 工程基础包名

  Minimum Required SDK : 最低支持的Android版本
  Target SDK : 开发对应的Android版本
  Comile With : 编辑使用的Android版本
  Theme : Android显示用主题

其它设定页面均使用默认,一路Next点下去就好。
最后一个空白的Android工程就有了。

-------------------------------------------------------------------------------------------------------------------------------------------------------

* 如果你以前没用过ADT,建议你将手机接上,运行下这个Hello world工程,确保手机可以正确被识别。
  运行时如果提示 No compatible targets were found. Do yo wish to a add new Android Virtual Device?
  点击菜单栏的window->Show View->Other,打开Android目录下的Devices视图,看是否有你的手机。
  如果有,请确认你的手机Android版本必须高于上面配置的「最低支持的Android版本」
  如果没有,说明手机驱动有问题,请更换对应驱动;不过也可能是数据线有问题,请使用原装的数据线。

-------------------------------------------------------------------------------------------------------------------------------------------------------

接下来就是写代码了,首先将首页设计成一个ListView,方便以后追加程序,和回顾以前的程序。
(具体实现方法请参照附件,会点Android基础的人,都能看懂)

下面说明下MainActivity01这个类里的方法

package com.openglestest.test01;import android.app.Activity;import android.opengl.GLSurfaceView;import android.os.Bundle;public class MainActivity01 extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);GLSurfaceView glSurfaceView = new GLSurfaceView(this);glSurfaceView.setEGLContextClientVersion(2);  // Pick an OpenGL ES 2.0 context.glSurfaceView.setRenderer(new OpenGLRender());setContentView(glSurfaceView);}}

GLSurfaceView是Android里,专门用来负责OpenGL渲染的视图。
第14行的处理,是设定我们要使用OpenGL ES 2.0来进行渲染。(1和2有什么区别,目前不知道,以后再研究)
第15行是设定我们要使用的渲染器,也就是实际画图的类了。

接着看下OpenGLRender这个渲染器

package com.openglestest.test01;import javax.microedition.khronos.egl.EGLConfig;import javax.microedition.khronos.opengles.GL10;import android.opengl.GLES20;import android.opengl.GLSurfaceView.Renderer;public class OpenGLRender implements Renderer {@Overridepublic void onSurfaceCreated(GL10 gl, EGLConfig config) {GLES20.glClearColor(0.9f, 0.2f, 0.2f, 1.0f);GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);}@Overridepublic void onSurfaceChanged(GL10 gl, int width, int height) {// TODO Auto-generated method stub}@Overridepublic void onDrawFrame(GL10 gl) {// TODO Auto-generated method stub}}

该类是通过实现Android里Renderer接口而生成的。
从方法名来看,这三个方法会分别在画面创建,画面变化和绘制框架里调用(具体的以后在研究)
代码13与14行,是从别的地方copy来的,据说是清空画面用的,以后在研究。

特别要说明的是,代码13与14行使用的是GLES20对象,而不是参数的GL10对象。
为什么呢?很简单GLES20是2.0用的,GL10是1.0用的。(有什么区别?还是那句话,以后再研究)

接着插上手机,运行程序,得到以下效果。
今天的目标顺利完成。

零基础开发OpenGL ES 2.0学习笔记-Android篇(一)_第2张图片

代码下载地址: 20141125.zip

更多相关文章

  1. 手机相册的基本使用
  2. QQ空间手机版的十件不为人知的事
  3. Android手机蓝牙与单片机蓝牙串通信开发经验总结
  4. Android核心分析 之三:手机之硬件形态
  5. Google手机OS大战:Android挟免费开源优势被看好
  6. 保持Android手机屏幕长亮的方法
  7. 手机淘宝Android客户端架构
  8. Android 手机厂商推送服务调研

随机推荐

  1. Android之SystemUI加载流程和NavigationB
  2. Android视图的截图
  3. android:shape的使用
  4. Android的onCreateOptionsMenu()创建菜单
  5. Android(安卓)开发技术周报 Issue#275
  6. Android牟利之道(一)--界面嵌入有米广告
  7. Android(安卓)Fragment 生命周期及回调方
  8. android 动画
  9. 申请 android google map API key
  10. 关于Google Android,第一印象