Image Android Studio-将位图保存到库不正确

Image Android Studio-将位图保存到库不正确,image,android-studio,bitmap,gallery,media,Image,Android Studio,Bitmap,Gallery,Media,所以我用这个函数将位图保存到gallery,但我是初学者,它不起作用 public static String saveBitmapToGallery(Context context, Bitmap bitmap, String title, String desc){ return MediaStore.Images.Media.insertImage(context.getContentResolver(),bitmap, title, desc); } 它是在AsyncTask

所以我用这个函数将位图保存到gallery,但我是初学者,它不起作用

public static String saveBitmapToGallery(Context context, Bitmap bitmap, String title, String desc){

    return MediaStore.Images.Media.insertImage(context.getContentResolver(),bitmap, title, desc);
}
它是在AsyncTask类中调用的。我将返回值保存为“saveUrl”字符串。(我检查过了,它不是空的。) 在onPostExecute中,我调用此函数(如果“saveUrl”为'n null)来刷新库:

 MediaScannerConnection.scanFile(actualMainView.getContext(), new String[]{saveUrl}, null, null);
问题是文件创建不正确。大小为0B,标题和创建日期不正确。并且缩略图将在文件管理器中正确显示。
缺少什么才能让它工作?提前感谢您的帮助

试试这个,也许对你有帮助。

private void saveImage(Bitmap bitmatFile, String image_name) {

    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root);
    myDir.mkdirs();
    String fname = "Image-" + image_name+ ".jpg";
    File file = new File(myDir, fname);
    if (file.exists()) file.delete();
    Log.i("LOAD", root + fname);
    try {
        FileOutputStream fos = new FileOutputStream(file);
        bitmatFile.compress(Bitmap.CompressFormat.JPEG, 90, fos);
        fos.flush();
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

试试这个,也许对你有帮助。

private void saveImage(Bitmap bitmatFile, String image_name) {

    String root = Environment.getExternalStorageDirectory().toString();
    File myDir = new File(root);
    myDir.mkdirs();
    String fname = "Image-" + image_name+ ".jpg";
    File file = new File(myDir, fname);
    if (file.exists()) file.delete();
    Log.i("LOAD", root + fname);
    try {
        FileOutputStream fos = new FileOutputStream(file);
        bitmatFile.compress(Bitmap.CompressFormat.JPEG, 90, fos);
        fos.flush();
        fos.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

这太好了,继续前进。@dámRozinka.)这太好了,继续前进。@dámRozinka.)