본문 바로가기

나의 플랫폼/안드로이드

[ Android Opengl es ] 화면이 하얗게 보이는 현상.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

 Nexus S 이상 때부터 Opengl을 사용할 때, 
본래 Bitmap 이미지의 크기를 2의 배수로 지정해주지 않으면,
그 Object를 하얗게 뿌려버리더군요.

그래서 다음과 같은 함수를 만들어서 사용을 합니다.

private int getMinPowerByTwo(int value) {

       int result = 2;

       do {

result *= 2;

} while(result < value);

return result;

}


 위 함수는  계속 2씩 곱해 나가다가 value 값 보다 커졌을 경우,
그 값을 리턴 시켜주는 거지요.

즉, 500x168 이라는 이미지가 있을 경우에는
위 함수를 통하여 우선 512 x256의 크기로 Bitmap을 리사이징 하고
Texture에 저장을 시킨 후,
Texture 크기를 500x168로 맞추면 되는 거죠^^

width = getMinPowerByTwo(bmp.getWidth());

height = getMinPowerByTwo(bmp.getHeight());

Bitmap tmpBmp = Bitmap.createScaledBitmap(bmp, width, height, true);

 
먼가 부분적으로 설명을 하여 이해하기가 힘들실지도 모르지만,
분명 어느정도 기초가 쌓여가면서 예제 소스들 보시고
이걸 보시면 아하 ~ 하면서 이해를 금방 하실 수 있을겁니다.^^

그럼 오늘도 즐코딩요~ㅋ