본문 바로가기

Bitmap

[Android] drawable-hdpi,drawable-mdpi,drawable-ldpi 안드로이드에선 drawable폴더에는 이미지파일을 넣어 둡니다. 모두들 알다시피, 안드로이드는 다양한 해상도를 1.6버전부터 제공하게 되었습니다. 그래서 그 해상도에 맞춰서 이미지의 사이즈도 조절을 해줘야 합니다. 이 때!! 해상도를 매번 확인하지 않고, 사용자가 drawable 폴더를 3개를 나눠서 지정을 해 놓으면, 자체적으로 해상도에 맞게 이미지가 적용이 되는 거지요. 당연 이미지에 접근 할 때는 -hdpi나 -mdpi는 필요없이 그냥 drawable을 통해서 이미지를 접근할 수 있습니다. [이미지 접근 방법] Resources res = context.getResources(); ImgData imgData = data.getBackground(); Bitmap background = null; .. 더보기
[Android] Opengl 텍스쳐 변경 시!!! 제가 하루 동안 갑자기 발생한 Memory over flow 때문에... 원래 제출 해야하는 날보다 하루 미루게 되었던 대 사건의 원인을 적어볼까 합니다. - 테스트 폰 : HTC 디자이어 HD, Sky Vega X - 문제: LiveWallpaper의 설정을 여러 번 바꾼 후에, 갑자기 핸드폰이 멈춰버리는 대 사건이!-0- - 원인: 거의 5시간을 걸쳐 디버깅 하고, 구글리을 해서 알아낸 결과! heap memory가 사라지지 않고, 계속 쌓이는 것이었습니다. 처음 Bitmap의 초기화를 잘 못했나 해서 받아들인 Bitmap에 전부 초기화를 했습니다. [Bitmap 초기화 방법] gl.glGenTextures(textures.length , textures, 0); gl.glBindTexture(GL1.. 더보기
[Android] Bitmap 이미지 가로 세로 회전 Bitmap 이미지를 90도 방향만큼 Rotate 시키는 함수 입니다. 가로가 세로보다 클 경우 이미지가 옆으로 눕혀서 보이는 것을 방지하기 위해 만들었습니다. 참조하세요.~ if(background.getHeight() < background.getWidth()){ background = imgRotate(background); } private Bitmap imgRotate(Bitmap bmp){ int width = bmp.getWidth(); int height = bmp.getHeight(); Matrix matrix = new Matrix(); matrix.postRotate(90); Bitmap resizedBitmap = Bitmap.createBitmap(bmp, 0, 0, width, .. 더보기
[Android] Opengl 사용 시 Antialiasing 작용 1. 아래에 두 옵션을 먼저 넣어보세요. 조금이나마 선이 부드럽게 바뀝니다. gl.glEnable(GL10.GL_LINE_SMOOTH); gl.glHint(GL11.GL_LINE_SMOOTH_HINT, GL11.GL_NICEST); 2. 만약 위와 같은 옵션을 줬어도 변함이 없는 경우 혹시, Texture에 Bitmap을 넣을 경우 Bitmap.createScaledBitmap이 함수를 사용하셨는지 확인해보세요. Bitmap.createScaledBitmap(src, dstWidth, dstHeight, filter); src : 원본 Bitmap dstWidth : 변경할 가로 사이즈 dstHeight : 변경할 세로 사이즈 filter : Bitmap에 부드럽게 보여주기 위한 필터 매개 변수 입니다... 더보기