1

一連の画像 URL があります。ビットマップにダウンロードします。これらの画像を sdcard/project フォルダーに保存したいと思います。そのようなファイルがない場合は、作成する必要があります。私が今やったことは次のとおりです。

String path = Environment.getExternalStorageDirectory().toString();
OutputStream fOut = null;
File file = new File(path, imageName);
if(!file.exists()) {
    file.mkdir();
    try {
        fOut = new FileOutputStream(file);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
        fOut.flush();
        fOut.close();
        MediaStore.Images.Media.insertImage(getContentResolver(), "file://"
            + file.getAbsolutePath(), file.getName(), file.getName());

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}   

しかし、SDカードに画像が挿入されていません。私のコードで何が間違っていますか? 返信してください。前もって感謝します。

4

3 に答える 3

0

コードの問題:
1)ファイル名でディレクトリを作成しています。代わりに、「パス」のみを使用してmkdir()を試してください
。2)「file://」を使用せずに「file.getAbsolutePath()」のみをinsertImage()関数に渡します。3)作成する必要のないinsertImage
の代替APIがあります。ローカルにもう1つのファイル。ビットマップを直接それに渡します。

お役に立てれば。

于 2011-03-25T06:54:31.040 に答える
0
  1. Manifest.xml ファイルで、外部ストレージ デバイスへの書き込み/読み取りの適切なアクセス許可が設定されていることを確認しましたか?

  2. また、コードは上記の例外のいずれかで終了しますか? スタックトレースよりもわかりやすいメッセージを出力します。そのようなもの:

    try {
    } catch (FileNotFoundException e) {
    Log.v(this.toString(), "ブロックでキャッチされた例外");
    }

またはこれらの行の何か..

HTH
スリラム

于 2011-03-25T06:35:50.653 に答える