안녕하세요 돼지왕 왕돼지입니다.
안드로이드에서 OpenGL 을 사용하여 Text 를 출력할 일이 많으시죠?
어떤 방법으로 하면 될까 샘플코드와 함께 알아보시죠.
Text Bitmap 만들기.
Bitmap bitmap = Bitmap.createBitmap( 64, 64, Bitmap.Config.ARGB_4444 );
Canvas canvas = new Canvas( bitmap );
bitmap.eraseColor( 0 );
Paint textPaint = new Paint();
textPaint.setTextSize( 18 );
textPaint.setAntiAlias( true );
textPaint.setARGB( 0xff, 0xff, 0xff, 0xff );
textPaint.setTextAlign( Paint.Align.LEFT );
textPaint.setTextScaleX( 0.5f );
canvas.drawText( str, 0.f, 15.f , textPaint);
Bitmap Texture 에 bind 하기.
gl.glGenTextures( 1, mTextures, 0 );
gl.glBindTexture( GL10.GL_TEXTURE_2D, mTextures[ 0 ] );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT );
GLUtils.texImage2D( GL10.GL_TEXTURE_2D, 0, bitmap, 0 );
bitmap.recycle();
Texture 입히기.
gl.glEnableClientState( GL10.GL_VERTEX_ARRAY );
gl.glEnableClientState( GL10.GL_TEXTURE_COORD_ARRAY );
gl.glVertexPointer( NUMBER_OF_AXIS, GL10.GL_FLOAT, 0, mImageRectVertexBuffer );
gl.glBindTexture( GL10.GL_TEXTURE_2D, mTextures[ 0 ] );
gl.glTexCoordPointer( 2, GL10.GL_FLOAT, 0, mUVBuffer );
gl.glDrawElements( GL10.GL_TRIANGLES, INDICES.length, GL10.GL_UNSIGNED_SHORT, mIndicesBuffer );
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[Android/안드로이드] jarsigner 로 apk sign하기. ( with 예제 ) (4) | 2012.02.27 |
---|---|
[Android/안드로이드] jarsigner 사용하여 apk 의 sign 여부 확인하기. (0) | 2012.02.27 |
[Android/안드로이드] MAT ( Mermory Analyzer Tool ) Android, Eclipse 사용 방법. (0) | 2012.02.24 |
[Android/안드로이드] Memory Leak ( 메모리 누수 ) 를 피하는 방법. (2) | 2012.02.23 |
[Android/안드로이드] ListView ( 리스트 뷰 ) 두번째 이야기. (0) | 2012.02.22 |
댓글