メモリの問題を解決するために以下のコードを使用しています。私の画像は 123.jpg という名前の res/drawable に存在します。以下のチュートリアルに従っています
http://android-solution-sample.blogspot.com/2011/10/bitmap-out-of-memory.html
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
FileInputStream fis = new FileInputStream(files[i].getAbsolutePath());
BitmapFactory.decodeStream(fis, null, o);
fis.close();
final int REQUIRED_SIZE = 70;
int width_tmp = o.outWidth, height_tmp = o.outHeight;
int scale = 1;
while (true) {
if (width_tmp / 2 < REQUIRED_SIZE || height_tmp / 2 < REQUIRED_SIZE)
break;
width_tmp /= 2;
height_tmp /= 2;
scale *= 2;
}
BitmapFactory.Options op = new BitmapFactory.Options();
op.inSampleSize = scale;
fis = new FileInputStream(files[i].getAbsolutePath());
bitmap = BitmapFactory.decodeStream(fis, null, op);
fis.close();