大きなBitmapの読み込み方

Androidはメモリが空いていると、デフォルトのRGB_565(ちょっと画質悪い)だと2000x2000ぐらい読み込める場合があります。
かといってメモリが不足しているとそこでエラーがでます。またARGBだと半分ぐらいのサイズしか読み込めません。
なのでメモリーエラー対策はしておく必要があります。
以下のような感じでエラーキャッチしながら、inSampleSizeを増やしていくと適切なサイズで画像を読み込めます。
inSampleSize2倍でなくてもいい気がしますのでお好みで++にでも変更してみてください。

public static Bitmap sampleSizeOpenBitmap(String path, int startSize,
Config config) {
BitmapFactory.Options bitmapOption = new BitmapFactory.Options();
bitmapOption.inPreferredConfig=config;
return sampleSizeOpenBitmap(path, startSize,bitmapOption);
}

public static Bitmap sampleSizeOpenBitmap(String path, int startSize,
Options bitmapOption) {
int inSampleSize=startSize;
Bitmap bitmap=null;
for(int i=0;i<5;i++){

try{
bitmapOption.inSampleSize=inSampleSize;
bitmap=BitmapFactory.decodeFile(path,bitmapOption);
//Log.i("fileapp","bitmap loaded:"+inSampleSize);
lastSampleSize=inSampleSize;
}catch(Error e){
Log.i("imageutils","faild load:"+inSampleSize+" "+path);
}
if(bitmap!=null || bitmapOption.mCancel){
break;
}else{
inSampleSize*=2;
}
}
return bitmap;
}