IT_Programming/Android_Java

GLSurfaceView 배경 투명하게 만들기

JJun ™ 2015. 9. 8. 12:49



 출처: http://liveupdate.tistory.com/109





관련소스 : APIDemos/src/com.example.android.apis.graphics/TranslucentGLSurfaceViewActivity.java

 

GLSurfaceView는 기본 값이 알파채널이 적용되지 않아서,

glClearColor( 0,0,0,0 ); 으로 해도 투명값이 설정되지 않는다.

 

EGL을 통해 SurfaceView를 핸들링하므로, 뷰 생성후 EGL, SurfaceView관련 설정만 하면 알파값을 사용할  있다.

 



  GLSurfaceView myView = new GLSurfaceView(this);

 

  // 픽셀포맷을 32비트포맷(8,8,8,8)으로 변경한다.

  myView.setEGLConfigChooser( 8, 8, 8, 8, 16, 0);

 

  // 렌더러 설정

  myView.setRenderer( new MyRenderer() );

 

  // 서비스포맷을 설정한다.

  myView.getHolder().setFormat( PixelFormat.TRANSLUCENT );



 

이처럼 간단히 픽셀포맷만 변경하면된다.

이후 렌더러에서 glClearColor( 0, 0,0,0 ); 하면 배경은 투명으로 처리됨을 확인할 수 있다.