0
try {
FileOutputStream out = new FileOutputStream("p1");
pictureTaken.compress(Bitmap.CompressFormat.PNG, 90, out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}

        case R.id.open:
        ImageView im = (ImageView) findViewById(R.id.im);
        try {
            FileInputStream in = new FileInputStream("p1");
            BufferedInputStream buf = new BufferedInputStream(in);
            byte[] bitMapA= new byte[buf.available()];
            buf.read(bitMapA);
            Bitmap bM = BitmapFactory.decodeByteArray(bitMapA, 0, bitMapA.length);
            im.setImageBitmap(bM);
            if (in != null) {
            in.close();
            }
            if (buf != null) {
            buf.close();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        break;

どちらも試してみましたが、デバッグに合格しませんでした。キャッチに到達しました...これらのパーツのほとんどをオンラインで入手し、必要に応じて変更しましたが、それでも、すべてが理にかなっていて、頭の中で機能します. なぜ例外がスローされるのかわかりません。

4

1 に答える 1

2

Android のように聞こえます。使用しているパス ( p1) から、アプリの実行中のフォルダー内のファイルに保存しようとしています。大まかに言えば、そのディレクトリに書き込むことはできません。あなたは次のようなことをしたいと思うでしょう:

FileOutputStream out = openFileOutput ("p1", MODE_WORLD_WRITABLE);

最初のコード ブロックで、次に:

FileInputStream in = openFileInput("p1");

2 番目のコード ブロックで。

于 2011-05-22T05:52:01.777 に答える