Android 3D绘图开发简介

  • 内容
  • 评论
  • 相关

3D图像的绘制使用的是 OpenGL ES,所以我们先介绍 OpenGL ES。

OpenGL 是一组跨平台的 3D 图像处理 API,OpenGL ES 是 OpenGL 的嵌入式版本,Android 系统从 Android 1.0 开始支持 OpenGL ES 1.0 和 1.1,自 Android 2.2(API Level 8)开始,Android 框架开始支持 OpenGL 2.0 API。

在这里仅介绍其使用方法。详细资料可以查询 Android SDK 的相关文档。

使用 OpenGL ES API 绘制 3D 图像有两个基础的相关类,一个是 GLSurfaceView 类,另一个是 GLSurfaceView.Renderer 接口。

1)GLSurfaceView 类

GLSurfaceView 类是 SurfaceView 的子类,使用内嵌的 Surface 进行 OpenGL 绘图渲染。GLSurfaceView 提供以下功能:

  • 管理 Surface,Surface 是一块内存,可以被加载到 View 视图中。
  • 管理一个 EGL 显示,能够使用 OpenGL 把内容渲染到 Surface 上。
  • 接受用户自定义渲染器用于实际渲染。
  • 使渲染器在单独的线程中运行,与更新 UI 的线程相分离。
  • 支持按需渲染(on-demand rendering)和连续渲染(continuous rendering)。
  • 提供一些可选工具,如 OpenGL 调用的跟踪调试和错误检查等。

2)GLSurfaceView.Renderer 接口

GLSurfaceView.Renderer 接口定义了使用 OpenGL 绘图时所需的方法。该接口通过 GLSurfaceView.setRenderer() 与 GLSurfaceView 关联在一起。

该接口实现以下三个方法。

  • onSurfaceCreated():当创建 GLSurfaceView 对象后,该方法被系统调用一次。通常在该方法中设置 OpenGL 环境的相关参数,初始化 OpenGL 图形对象等。
  • onDrawFrame():GLSurfaceView 对象每一次重绘时系统都会调用该方法。该方法应该执行具体的绘图工作。
  • onSurfaceChanged():当 GLSurfaceView 对象的几何外形改变时,包括 GLSurfaceView 的尺寸发生改变、设备屏幕的方向发生改变等情况,该方法被系统调用。

实例 OpenGLDemo 演示了在 Activity 中使用 GLSurfaceView 和 GLSurfaceView.Renderer 合作绘制三维图形的过程。

该实例绘制了一个不断旋转的立方体,运行效果如图 1 所示。

实例OpenGLDemo的运行效果
图 1  实例OpenGLDemo的运行效果

本文标题:Android 3D绘图开发简介

本文地址:http://www.hosteonscn.com/5153.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注