簡體   English   中英

我嘗試使用Android Studio在我的SD卡中保存位圖圖像

[英]I try save bitmap image in my SDcard using android studio

請在代碼中幫助我解決此問題,我想將位圖圖像(newimage)保存到手機(Galaxy j7)的SD卡中,但出現錯誤(沒有此類文件或目錄)

File filepath;
    filepath = Environment.getExternalStorageDirectory();

   File  dir = new File(filepath.getAbsolutePath()+"/save image");
    dir.mkdirs();
    File  file = new File(dir,"myimage.png");
    Toast.makeText(MainActivity.this,"image saved to SD",Toast.LENGTH_LONG).show();
   try{

        OutputStream stream ;

        stream = new FileOutputStream(file);

        newimage.compress(Bitmap.CompressFormat.PNG,100,stream);

        stream.flush();

        stream.close();

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

    // Parse the saved image path to uri
    Uri savedImageURI = Uri.parse(filepath.getAbsolutePath());

    // Display the saved image to ImageView
  //  imagev.setImageURI(savedImageURI);

    // Display saved image uri to TextView
    tv_saved.setText("Image saved in external storage.\n" + savedImageURI);

錯誤消息是:

W/System.err: java.io.FileNotFoundException: /storage/emulated/0/save image/myimage.png (No such file or directory)

我在manifest.xml中添加了寫入權限,如下所示:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    android:maxSdkVersion="21" />
<uses-sdk
            android:minSdkVersion="9"
    android:targetSdkVersion="21"/>

我認為您的代碼沒有問題,問題在於您要在其上編譯項目的Android版本。 在更高版本的Android上,您應該為存儲權限實現運行時權限。

請參閱此處的答案它將解決您的問題。

編輯:發布您的答案后,我認識到您的實現的另一個問題。 在嘗試將圖像保存到名為save image的目錄之前,應通過以下方式創建此文件夾

String folder_main = "save image"; File f = new File(Environment.getExternalStorageDirectory(), folder_main); if(!f.exists()) {f.mkdirs();}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM