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

时间:2015-10-12 07:09:03

标签: 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);

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

3 个答案:

答案 0 :(得分:4)

将其复制到图库或在Android画廊中显示?

如果你想在Android画廊中显示图片?您可以通过扫描媒体执行此操作,这是如何扫描:

Uri uri = Uri.fromFile(file); Intent scanFileIntent = new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri); sendBroadcast(scanFileIntent);

如果您只想复制文件,请执行以下操作:

  in = new FileInputStream(sourceFile);
  out = new FileOutputStream(destFile);
  byte[] buffer = new byte[1024];
  int read;
  while ((read = in.read(buffer)) != -1) {
    out.write(buffer, 0, read);
  }
  in.close();
  in = null;

  out.flush();
  out.close();

答案 1 :(得分:0)

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

substr(ns_name, 1, instr(ns_name, '_', -1) - 1)

答案 2 :(得分:0)

这可能会有所帮助:

Uri selectedImageURI = data.getData();
imageFile = new File(getRealPathFromURI(selectedImageURI));

获取路径后,您可以通过以下方式存储图像:

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(imageFile, values);

希望这有帮助。