将图片从图库保存到我的文件夹外部SD中?

时间:2018-12-10 09:08:14

标签: java android sqlite

我有一个添加新帖子的活动,每个帖子用户都可以从画廊中选择图片或使用相机拍照。对于从相机拍摄的图片,我可以使用保存图像的方法,但是当我从图库中选择图片时,只需在文件夹中保存带有黑色图片的图片名称即可。

public void saveImage(Bitmap myBitmap) {
   ByteArrayOutputStream bytes = new ByteArrayOutputStream();
    File wallpaperDirectory = new File(
            Environment.getExternalStorageDirectory() + IMAGE_DIRECTORY);

    if (!wallpaperDirectory.exists()) {
        wallpaperDirectory.mkdirs();
    }

    try {
        File f = new File(wallpaperDirectory, Calendar.getInstance()
                .getTimeInMillis() + ".jpg");
        img_name = f.getAbsolutePath();
        f.createNewFile();
        FileOutputStream fo = new FileOutputStream(f);
        fo.write(bytes.toByteArray());
        MediaScannerConnection.scanFile(this,
                new String[]{f.getPath()},
                new String[]{"image/jpeg"}, null);
        fo.close();
        Log.d("TAG", "File Saved::--->" + f.getAbsolutePath());

        return f.getAbsolutePath();
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    return "";

在我的RecyclerView中什么也没显示。

1 个答案:

答案 0 :(得分:0)

您只是在创建一个新的图像文件,而不在其中保存任何内容。 使用以下

FileOutputStream fo = new FileOutputStream(f);
myBitmap.compress(Bitmap.CompressFormat.PNG, 100, fo); // bmp is your Bitmap instance
fo.write(bytes.toByteArray());

您缺少此myBitmap.compress(Bitmap.CompressFormat.PNG, 100, fo);,因此添加它。