アクティビティが全画面表示の画像ビューを表示するアプリケーションを実装しています。これで、アプリケーションのファイル ディレクトリにいくつかの画像がダウンロードされました。大きな画像を縮小しているアクティビティで、画像を画像ビューに設定したいと思います。アプリケーションを使用してから 10 ~ 15 分後に OutOfMemory エラーが発生します。エラーはBitmapFactoryのdecodeFileにあります。これが私のコードです:
public static int calculateInSampleSize(
BitmapFactory.Options options, int reqWidth, int reqHeight) {
// Raw height and width of image
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if (height > reqHeight || width > reqWidth) {
if (width > height) {
inSampleSize = Math.round((float)height / (float)reqHeight);
} else {
inSampleSize = Math.round((float)width / (float)reqWidth);
}
}
return inSampleSize;
}
public static Bitmap decodeSampledBitmapFromFile(String imagePath,
int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(imagePath, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeFile(imagePath, options);
}
今、私は reqHeight = 500 と reqWidth = 500 を与えています
このコードは Android ガイドライン ページに記載されています。不足しているものはありますか? もしそうなら、私を助けてください. 私は多くのことを試しましたが、解決策は得られませんでした。