将图像文件从 Android 内部存储复制到图库

TP8*_*P89 5 android android-gallery

我有一个相机应用程序,在用户拍摄图像后,我将其保存到我创建的目录中的内部存储中。一切正常,图像保存在那里,我可以加载它并在之后显示,但我也无法将图像保存到 Android 画廊。

我想要的是将图像保存到内部目录后,将其复制到图库。

我试过这个:

    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.DATE_TAKEN, System.currentTimeMillis());
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/png");
    values.put(MediaStore.Images.Media.SIZE, file.length());
    values.put(MediaStore.Images.Media.DATA, file.getAbsolutePath());

    context.getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Run Code Online (Sandbox Code Playgroud)

文件是我保存在内部存储中的图像。使用这种方法,我得到的只是图库中的损坏图像。

Jas*_*Jas 0

您可以使用此方法来保存图像:

  public void saveToSD(Bitmap outputImage){


            File storagePath = new File(Environment.getExternalStorageDirectory() + "/MyPhotos/"); 
            storagePath.mkdirs(); 

            File myImage = new File(storagePath, Long.toString(System.currentTimeMillis()) + ".jpg");

            try { 
                FileOutputStream out = new FileOutputStream(myImage); 
                outputImage.compress(Bitmap.CompressFormat.JPEG, 80, out); 
                out.flush();    
                out.close();
            } catch (Exception e) { 
                e.printStackTrace(); 
            }               
        }
Run Code Online (Sandbox Code Playgroud)