【问题标题】:Saving bitmap to gallery in Android在 Android 中将位图保存到图库
【发布时间】:2019-04-22 23:59:29
【问题描述】:

我认为这应该很简单,但我无法弄清楚。 我不断收到错误消息:System.IO.DirectoryNotFoundException: Could not find a part of the path "/storage/emulated/0/Pictures/Screenshots/name.jpg"

代码:

string root = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryPictures).Path;
File myDir = new File(root + "/Screenshots");
myDir.Mkdirs();

string timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").Format(new Date());
string fname = CommunicationHandler.GetNickname() + "|" + timeStamp + ".jpg";

File file = new File(myDir, fname);
if (file.Exists())
    file.Delete();
try
{
    using (System.IO.Stream outStream = System.IO.File.Create(file.Path))
        {
            finalBitmap.Compress(Bitmap.CompressFormat.Jpeg, 100, outStream);
            outStream.Flush();
            outStream.Close();
        }
}
catch (Exception e)
{
    Toast.MakeText(Activity, e.ToString(), ToastLength.Long).Show();
}

另外,我无法手动访问 /storage/emulated/0..

为什么我无法将位图保存到我的手机图库中?上面的代码有什么问题?

【问题讨论】:

标签: c# xamarin bitmap stream android-external-storage


【解决方案1】:

如果要新建目录,可以使用System.IO.Directory.CreateDirectory(root);创建。

//create a directory called MyCamera
    string root = Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDcim).ToString() + "/MyCamera/";

   //create the Directory
    System.IO.Directory.CreateDirectory(root);

【讨论】:

    【解决方案2】:

    取自here:

    MediaScannerConnection.scanFile(this, new String[]{file.toString()}, null,
        new MediaScannerConnection.OnScanCompletedListener() {
            public void onScanCompleted(String path, Uri uri) {
                Log.i("ExternalStorage", "Scanned " + path + ":");
                Log.i("ExternalStorage", "-> uri=" + uri);
            }
        });
    }
    

    另外,请注意,您可以通过简单的一行将图像添加到图库:

    MediaStore.Images.Media.insertImage(applicationContext.getContentResolver(), IMAGE ,"nameofimage" , "description");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-09
      • 1970-01-01
      • 2014-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多