0

現在、OutOfMemoryException を回避するためにビットマップを縮小しています。デコードするファイル サイズを指定する方法はありますか? そのため、入力画像のファイル サイズに関係なく、指定されたファイル サイズに縮小されます。

出力ファイルのサイズを指定する方法がわかるまで、 http://androidbysravan.wordpress.com/category/outofmemory-exception-when-decoding-with-bitmapfactory/の次のコードを使用しています。

Bitmap bm = null; 
BitmapFactory.Options options = new BitmapFactory.Options(); 
options.inSampleSize = 10; 
AssetFileDescriptor fileDescriptor =null; 
try { 
    fileDescriptor = _context.getContentResolver().openAssetFileDescriptor(selectedImage,"r"); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
finally{ 
    try { 
        bm = BitmapFactory.decodeFileDescriptor(fileDescriptor.getFileDescriptor(), null, options); 
        fileDescriptor.close(); 
    } catch (IOException e) { 
        e.printStackTrace(); 
    } 
} 
return bm; 
} 
4

1 に答える 1

1

デコードする画像は、PNG、JPEGなどの圧縮形式になります。したがって、デコードするときは、Androidが理解できる形式で画像をメモリに解凍するだけです。デコードされた画像のサイズを制御することはできませんが、BitmapFactory.Optionsクラスを使用して画像を効率的にデコードできるようにする特定のプロパティを制御することはできます。

このクラスを適切に使用して画像を効率的に読み込む方法に関する優れた公式ガイドは次のとおりです。

http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

于 2012-11-02T17:29:57.610 に答える