保存图片的方式分为两种: Android Q 以上 Android Q 以下 补充知识: Android Q 以上的保存图片 保存到应用的内部存储空间 (内部存储) 保存到 Android 系统设置的共享存储空间(外部储存) 图片(包括照片
保存图片的方式分为两种:
Android Q 以上
Android Q 以下
补充知识:
Android Q 以上的保存图片
保存到应用的内部存储空间 (内部存储)
保存到 Android 系统设置的共享存储空间(外部储存)
图片(包括照片和屏幕截图),存储在 DCIM/
或 Pictures/
目录
视频,存储在 DCIM/
、Movies/
或 Pictures/
目录
音频文件,存储在 Alarms/
、Audiobooks/
、Music/
、Notifications/
、Podcasts/
或 Ringtones/
目录中
下载的文件,存储在 Download/
目录中
获取外部存储目录
函数使用:getExternalStorageDirectory()
获取外部存储公共目录
函数使用:getExternalStoragePublicDirectory()
获取外部存储目录
函数使用:getExternalFilesDir()
获取外部存储公共目录
函数使用:
Environment.DIRECTORY_DCIM 相机照片
Environment.DIRECTORY_MUSIC 音乐
Environment.DIRECTORY_PODCASTS 系统广播
Environment.DIRECTORY_RINGTONES 系统铃声
Environment.DIRECTORY_ALARMS 系统提醒铃声
Environment.DIRECTORY_NOTIFICATIONS 系统通知铃声
Environment.DIRECTORY_PICTURES 图片
Environment.DIRECTORY_MOVIES 电影
Environment.DIRECTORY_DOWNLOADS 下载
Android Q 以下
// Android Q 以下 public void saveQNext(Bitmap image, Context context, String fileName, int quality) { String path = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "艾跳跳"; Log.i("TAG", "saveQNext: >>> " + path); // 创建文件夹 mkdir(path); // 文件名称 Log.i("TAG", "saveQNext: " + fileName); File file = new File(path, fileName); try { FileOutputStream fos = new FileOutputStream(file); // 通过io流的方式来压缩保存图片 image.compress(Bitmap.CompressFORMat.JPEG, quality, fos); fos.flush(); fos.close(); // 保存图片后发送广播通知更新数据库 Uri uri = Uri.fromFile(file); context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri)); } catch (IOException e) { e.printStackTrace(); } }
Android Q 以上
// Android Q 以上 @RequiresApi(api = Build.VERSION_CODES.Q) public void saveQUp(Bitmap image, Context context, String fileName, int quality) { // 文件夹路径 String imageSaveFilePath = Environment.DIRECTORY_DCIM + File.separator + "艾跳跳"; Log.i("TAG", "文件夹目录 >>> " + imageSaveFilePath); mkdir(imageSaveFilePath); // 文件名字 Log.d("TAG", "文件名字 >>> " + fileName); ContentValues contentValues = new ContentValues(); contentValues.put(MediaStore.MediaColumns.TITLE, fileName); contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, fileName); contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpeg"); contentValues.put(MediaStore.MediaColumns.DATE_TAKEN, fileName); //该媒体项在存储设备中的相对路径,该媒体项将在其中保留 contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, imageSaveFilePath); Uri uri = null; OutputStream outputStream = null; ContentResolver localContentResolver = context.getContentResolver(); try { uri = localContentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues); outputStream = localContentResolver.openOutputStream(uri); // Bitmap图片保存 // 1、宽高比例压缩 // 2、压缩参数 image.compress(Bitmap.CompressFormat.JPEG, quality, outputStream); outputStream.flush(); outputStream.close(); } catch (Exception e) { e.printStackTrace(); if (uri != null) { localContentResolver.delete(uri, null, null); } } finally { image.recycle(); try { if (outputStream != null) {outputStream.close(); } } catch (IOException e) { e.printStackTrace(); } } }
来源地址:https://blog.csdn.net/qq_35930739/article/details/128455453
--结束END--
本文标题: Android 保存图片到相册
本文链接: https://www.lsjlt.com/news/385287.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0