image - Android Studio - 将位图保存到图库不正确
问题描述
所以我使用这个功能将位图保存到画廊,但我是初学者,它不起作用。
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”为空)来刷新画廊:
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();
}
}
推荐阅读
- javascript - 当我使用解构赋值来简化我的道具时出错
- python - Python:从 JSON 中读取颜色代码
- android - 从另一个片段返回时保留片段内的对讲焦点?
- google-cloud-platform - 将 Google Cloud Platform 服务帐户的访问权限限制为特定的 Gmail 帐户
- javascript - 如何使用 react-hook-form 在 React 中存储无线电组的状态
- javascript - HTML5 / JavaScript / JQuery - 获取与输入相关联的表单的最佳方式
- search - 如何匹配特定列中的精确文本并输出整行信息?
- r - 如何使用 R 从数组中选择行?
- chart.js - 如何限制chart.js中显示的点数?
- php - 我的 Ajax 不显示通知消息