selectedImage = BitmapFactory.decodeFile(filePath);
round_img = RoundedAvatarDrawable.getRoundedCornerBitmap(selectedImage); //이미지를 라운드 처리한다.
_image = (ImageView) mThisView.findViewById(R.id.main_profile_img);
_image.setImageBitmap(round_img);
현재 sd card에서 이미지를 불러온다음 라운드 처리 후 이미지뷰에 뿌려주고 있습니다.
그리고 앱이 종료되면
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
//비트맵 이미지 반환
recycleBitmap(_image);
}
Destroy에서 G.C 해지하고 있구요
recycleBitmap 은
private static void recycleBitmap(ImageView iv) {
Drawable d = iv.getDrawable();
if (d instanceof BitmapDrawable) {
Bitmap b = ((BitmapDrawable)d).getBitmap();
b.recycle();
}
d.setCallback(null);
}
와 같이 구성하였습니다.
일부 단말에서 계속 오류가 발생합니다
현재 프레그먼트 형식으로 되어있는데 맨마지막 페이저까지 가면 Binary XML file line #2: Error inflating class <unknown>이 뜹니다;;(특히 4.0.3,4.0.4 에서요)
그리고 간혈적으로 앱을 재실행할때 앱이 죽습니다..
오류는 "Cannot draw recycled bitmaps" 오류가 뜹니다 특히 4.3에서 많이 발생하네요..
좀더 좋은 방법이 있다면 조언 부탁드리겠습니다..