2

ギャラリーの電話で写真を選択する機能に大きな問題があります。写真を選択し、URI を取得し、ストリームをビットマップに入れるために「onActivityResult」でストリームを読み取ると、「outoffmemoryerror」が発生します。

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
       Uri uri = data.getData();
       InputStream is = getContentResolver().openInputStream(mSelectedUri);
       Bitmap bitmap = BitmapFactory.decodeStream(is);
}

他のコードを試しましたが、同じ問題があります。まあ、写真次第です!

私はこれを見つけました: http://developer.android.com/training/displaying-bitmaps/index.html そして http://developer.android.com/training/displaying-bitmaps/load-bitmap.html

「java.lang.OutOfMemory 例外を回避するには、ビットマップをデコードする前にサイズを確認してください。ソースが、利用可能なメモリ内に快適に収まる予測可能なサイズの画像データを提供することを完全に信頼している場合を除きます。」

4

1 に答える 1

2

画像がビットマップに対して大きすぎる場合があるため、ビットマップを取得する方法は画像を縮小することです。このサイトでは良い例であり、私にとっては非常にうまく機能しました

http://twigstechtips.blogspot.com/2011/10/android-resize-bitmap-image-while.html

于 2012-12-20T14:24:41.293 に答える