안드로이드 개발 질문/답변
(글 수 45,052)
Main.java public static Main instance = null; //onCreate()에서 instance = this;
Bitmap icon = BitmapFactory.decodeResource(Main.instance.getResources(), R.drawable.menu_setting);
위 처럼 icon을 만드는데 icon의 결과가 width, height 둘다 -1이 나오네요.
Main.instance.getResources()는 null이 아니고..
R.drawable.menu_setting도 있는 이미지이구요.
그런데 icon을 가져오지 못해서 Thread.sleep을 해봐도 안되네요..
리소스와 R.drawable관련 문제인지.. 비트맵 팩토리 문제인지 계속 해매고 있습니다..
아시는 분 조언 부탁드려요 !
2012.02.03 16:41:09
자답입니다.
BitmapFactory.decode를 통해 생성된 비트맵은 Bitmap 객체 맴버 변수 nativeBitmap에 디코드만 되어있고..
이미지 width, height가 -1이네요.
하지만 icon.getWidth() 또는 drawBitmap(icon) 등으로 사용이 되면 이미지 width, height가 변경이 되네요..
decodeResoucre한 후에 이미지를 전송하거나 저장하려고 하면 decode 후에 getWidth() 등의 함수를 한번 실행해야 하겠네요 ㅠㅠ




BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
BitmapFactory.decodeResource(Main.instance.getResources(), R.drawable.menu_setting, options);
위 처럼 options의 inSampleSize를 이용해보세요
이미지의 용량이 큰 경우에는 이미지를 불러오지 못하는 경우가 발생합니다.