-2

画像ビューから画像を保存しようとしていますが、例外が発生しています(Read-only file system)

私はこのコードを試しました、

bitmap1 = imageView.getDrawingCache(); //for retrieving the Image

public void saveOnClick(View view)
{
    try 
    {
            String filename="qrimage";  
            FileOutputStream out = new FileOutputStream(filename);
            bitmap1.compress(Bitmap.CompressFormat.PNG, 90, out);
            Toast.makeText(getApplicationContext(), "Saved", Toast.LENGTH_SHORT).show();

    } 
    catch (Exception e) 
    {
           e.printStackTrace();
           Toast.makeText(getApplicationContext(), e.getMessage()+" Not Saved!", Toast.LENGTH_SHORT).show();
    }
}
4

4 に答える 4

0

ここに保存機能があります

void Save() {
    final File myDir = new File(folder);
    myDir.mkdirs();
    final Random generator = new Random();
    int n = 10000;
    n = generator.nextInt(n);
    final String fname = "StyleMe-" + n + ".png";
    file = new File(myDir, fname);
    if (file.exists())
        file.delete();
    try {

        mCBitmap.compress(CompressFormat.JPEG, 100, out);

        out.flush();
        out.close();
        sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,
                Uri.parse("file://"
                        + Environment.getExternalStorageDirectory())));
        Toast.makeText(getApplication(), "Image Saved", Toast.LENGTH_SHORT)
                .show();

    } catch (final Exception e) {

    }
}

Save();ボタンの onClick を呼び出すだけです。PS 名前とビットマップ名を変更する必要があります。

--- これらをグローバルとして宣言します

    static File file;
String folder = "/sdcard/Pictures/YourFolderName";

ストレージへの読み取りと書き込みのアクセス許可を設定することを忘れないでください。

于 2013-09-26T07:26:27.903 に答える
-1

まず、アプリでストレージ権限が有効になっていることを確認してください。

[デバイス設定] > [デバイス] > [アプリケーション] > [アプリケーション マネージャー] > [アプリ] > [権限] > [ストレージ権限を有効にする] に移動します。

マニフェストの権限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

したがって、ファイル ストレージに独自のディレクトリを作成する場合は、次のようなものを使用できます。

String myDate = getCurrentDateAndTime();
FileOutputStream outStream = null;
File sdCard = Environment.getExternalStorageDirectory();
File dir = new File(sdCard.getAbsolutePath() + "/YourFolderName");
dir.mkdirs();
String fileName = "YourFileName_"+myDate+".jpg";
File outFile = new File(dir, fileName);
outStream = new FileOutputStream(outFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream);
outStream.flush();
outStream.close();
//to refresh the gallery
Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
intent.setData(Uri.fromFile(file));
sendBroadcast(intent);
}

お役に立てれば!

于 2016-08-11T20:01:56.613 に答える