뷰 컨테이너 생성
더 좋은 방법은 GLSurfaceView and a GLSurfaceView.Renderer 두 개를 구현
GLSurfaceView는 OpenGL로 그려진 그래픽의 뷰 컨테이너
GLSurfaceView.Renderer는 그 뷰 안에 그려진 것들을 제어
GLSurfaceView는 전체 화면
TextureView는 일부 화면
menifest에 선언 : <uses-feature android:glEsVersion="0x00020000" android:required="true" />
일반 어플과 다르게 GLSurfaceView 추가 (Android 2.2 (API Level 8) or higher)
이벤트 처리를 위해
1. menifest에 선언
<uses-feature android:glEsVersion="0x00020000" android:required="true" />
2. class 추가
class MyGLSurfaceView extends GLSurfaceView {
public MyGLSurfaceView(Context context) {
super(context);
// OpenGL ES 2.0 버전 사용
setEGLContextClientVersion(2);
// 렌더러를 GLSurfaceView에 세트
setRenderer(new MyGLRenderer());
// 그리는 값에 변화가 있을 경우에만 렌더링 함
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
}
}
3. 렌더러 클래스 생성 (따로 분리된 java 파일로 생성)
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.opengl.GLSurfaceView;
import android.opengl.GLES20;
public class MyGLRenderer implements GLSurfaceView.Renderer {
public void onSurfaceCreated(GL10 unused, EGLConfig config) {
// 배경색 설정
GLES20.glClearColor(0.5f, 0.5f, 0.5f, 1.0f);
}
public void onDrawFrame(GL10 unused) {
// 배경 다시 그림
GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
}
public void onSurfaceChanged(GL10 unused, int width, int height) {
GLES20.glViewport(0, 0, width, height);
}
}
'stack overflow > Android' 카테고리의 다른 글
| [안드로이드]타이틀 바 없애기 (0) | 2013.03.20 |
|---|---|
| [안드로이드]Starting an Activity (0) | 2013.01.28 |
| [안드로이드]액티비티란? (0) | 2013.01.28 |
