Android圖形---OpenGL

openkk 12年前發布 | 28K 次閱讀 Android Android開發 移動開發

本文譯自:http://developer.android.com/guide/topics/graphics/opengl.html

Android系統包含了OpenGL(Open Graphics Library),從而給2D和3D圖形提供了高性能的支持,尤其是OpenGL ES API。OpenGL是一個跨平臺圖形API,它給3D圖形處理指定了一個標準的軟件接口。OpenGL ES是一種用于嵌入式設備的OpenGL規范。從Android1.0開始,就提供了對OpenGL ES1.0和1.1API規范的支持。從Android2.2(API Level 8)開始,框架開始支持OpenGL ES2.0 API規范。

注意:由Android框架所指定的API有點類似J2ME的JSR239 OpenGL ES API,但是它們還是有區別的,如果你熟悉J2ME的JSR239規范,就要小心其中的變化。

基礎

Android通過它框架API和NDK(Native Development Kit)來支持OpenGL。本文主要關注Android框架接口,關于NDK的更多信息,請看Android NDK(http://developer.android.com/sdk/ndk/index.html

在Android框架中有兩個OpenGL ES API類庫用來創建和維護圖形:GLsurfaceView和GLSurfaceView.Renderer。如果是要在應用程序中使用OpenGL,那么了解在一個Activity如何實現這些類應該是第一目標。

GLSurfaceView

這個類是一個View,在這個類中能夠繪制和維護使用OpenGL API調用的對象,并且它跟SurfaceView類的功能類似。通過創建GLSurfaceView類的一個實例,并給它添加一個Renderer對象來使用這個類。但是,如果想要捕獲觸屏事件,那么就應該繼承GLSurfaceView類并實現它的觸屏監聽器。示例程序 TouchRotateActivity(http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TouchRotateActivity.html)。

GLSurfaceView.Renderer

這個接口定義了在一個OpenGL的GLSurfaceView類中繪制圖形所必須的方法。必須提供一個單獨的類來實現這個接口,并且使用GLSurfaceView.setRenderer()方法把它綁定到GLSurefaceView類的實例上。

以下是必須實現的GLSurfaceView.Renderer接口方法:

1. onSurfaceCreated()

在創建GLSurfaceView對象時,系統會調用一次這個方法。使用這個方法來執行那些只需要發生一次的動作,如設置OpenGL環境參數或初始化OpenGL圖形對象。

2. onDrawFrame()

每次重繪GLSurefaceView對象時,系統都會調用該方法。使用這個方法作為繪制圖形(包括圖形重繪)對象的初始執行點。

3. onSurefaceChanged()

當GLSurfaceView對象的幾何圖形發生改變時(包括尺寸或設備屏幕方向的改變等),系統會調用這個方法。例如,當設備從縱向改到橫向時,系統就會調用這個方法。使用這個方法來響應GLSurfaceView容器中的改變。

轉自:http://blog.csdn.net/fireofstar/article/details/7678476

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!