安卓保存图片到图库demo总结
Android保存图片到图库Demo总结
方法截图
实现方法主要分为三种
- 通过MediaStore,不推荐,一次性保存两张图片,一张在file.getAbsolutePath()里,一张在Pictures里,消耗硬盘空间
MediaStore.Images.Media.insertImage(context.getContentResolver(),file.getAbsolutePath(),fileName,null);
- 通过广播
Uri contentUri = Uri.fromFile(file);
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,contentUri);
context.sendBroadcast(mediaScanIntent);
特别注意,文件的保存路径必须是Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
- 通过MediaScannerConnection,推荐使用
如果我们对时序有要求,并且需要制定文件保存路径的话,最好的方式就是直接使用 MediaScannerConnection 类进行操作,并且这也应该是兼容最好的方式。
getExternalStorageDirectory()和getExternalFilesDir()的区别
app专属文件就是那些只有该app才可以使用的文件,例如专属格式的电子书,app独立文件就是那些不依赖于某特定app的文件,例如照片。
App独立文件
这类文件当我们删除应用之后,还应该保留在手机上的,例如拍照的照片,不应该随着删除应用而被删除掉。对于这类文件,Android给我们提供了特定的目录,这些目录都是以DIRECTORY开头的,例如:DIRECTORY_MUSIC , DIRECTORY_PICTURES.