-1

イメージビューに表示されるビットマップを保存しようとしています。私が理解していることは、私がする必要があるということです

  1. ビットマップをストリームに変換します。
  2. そのストリームを SD カード上のファイルに書き込みます。

これが私がやったことです

try {
                   File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
                   File file = new File(path, "name.png");
                   FileOutputStream out = null;
                   if (file.exists()) {
                       // do something awesome

                   } else {

                       out = new FileOutputStream(file);
                       currentimage.compress(Bitmap.CompressFormat.PNG, 100, out);
                   }
                   out.close();
            } catch (Exception e) {
                   e.printStackTrace();
            }

保存されたファイル名を変更しようとしていますが、それが FileOutputStream に入ることは理解していますが、よくわかりません

4

2 に答える 2

0

コードは正しいように見えますが、唯一の問題は、OutputStream を閉じていないことです。追加する必要があります

try {
    out.close();
} catch (IOExcetion ex) {
}

それに。

于 2012-07-14T21:49:28.363 に答える
0

パブリック ピクチャ ディレクトリへのパスを拡張して、ファイル名を指定する必要があります。

FileOutputStream out = new FileOutputStream(new File(path, "name.png"));

または、最初に既に存在するかどうかを確認する場合:

File file = new File(path, "name.png");
if (file.exists()) {
    // do something awesome
    // perhaps save over top
    // perhaps pick another name
} else {
    // save it
    FileOutputStream out = new FileOutputStream(file);
    currentimage.compress(Bitmap.CompressFormat.PNG, 100, out);
}
于 2012-07-14T21:50:45.867 に答える