안드로이드에서 이미지 파일을 표시할때나,다룰때 파일 크기가 너무 커면 느려진다거나, 스크롤이 버벅이는등의 현상이 일어납니다.
크기가 작은 이미지 파일을 생성함으로써, 위의 문제를 어느정도 해결할 수 있습니다.
안드로이드 개발 - 비트맵(Bitmap) 비율 맞추면서 크기 줄이기(썸네일 생성)
// Bitmap to File
//bitmap에는 비트맵, strFilePath에 는 파일을 저장할 경로, strFilePath 에는 파일 이름을 할당해주면 됩니다.
public static void createThumbnail(Bitmap bitmap, String strFilePath,
String filename) {
File file = new File(strFilePath);
// If no folders
if (!file.exists()) {
file.mkdirs();
// Toast.makeText(this, "Success", Toast.LENGTH_SHORT).show();
}
File fileCacheItem = new File(strFilePath + filename);
OutputStream out = null;
try {
int height=bitmap.getHeight();
int width=bitmap.getWidth();
fileCacheItem.createNewFile();
out = new FileOutputStream(fileCacheItem);
//160 부분을 자신이 원하는 크기로 변경할 수 있습니다.
bitmap = Bitmap.createScaledBitmap(bitmap, 160, height/(width/160), true);
bitmap.compress(CompressFormat.JPEG, 100, out);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
위의 방법으로 하면 자신이 원하는 경로에 썸네일 파일을 생성할 수 있습니다.
Sdcard 경로에 저장하는 경우에는 아래 권한을 할당해 주어야 합니다.
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
도움이 되셨나요?
그럼 손가락을 눌러주세요:)