0

ビットマップの配列をダウンロードし、少し変更してから SD カードに保存する最良の方法を探しています。

ByteArrayOutputStreamイメージをデバイスの RAM にロードするため、使用するのは悪い考えだと聞いたことがあります。代わりに、おそらく a BufferedInputStreamandFileOutputStreamのようなものを使用することになっていますが、この方法を使用して保存する前にビットマップを変更する方法がわかりません。

ありがとう

4

2 に答える 2

1

以下を使用してビットマップを作成できますInputStream

Bitmap bm = BitmapFactory.decodeStream(inputStream);

そして、Bitmapそれらを処理して保存した後、次を使用する必要があります。

bm.recycle();
bm = null;

避けるためにOutOfMemoryExceptions

編集:

ファイルに書き込む場合:

OutputStream fos=new BufferedOutputStream(new FileOutputStream(filePath));
byte buf[]=new byte[1024];
int len;
while((len=is.read(buf))>0)
    fos.write(buf,0,len);
fos.close();
is.close();
于 2011-08-03T11:41:47.343 に答える
1

答えは気に入らないでしょう: できません (少なくとも、Android フレームワークではそうではありません)。

唯一のオプションは、メモリに収まるように画像を縮小することです。recycle()定期的にとを呼び出しSystem.gc()て、できるだけ早くメモリを解放します。

于 2011-08-03T16:42:39.670 に答える