Android中保存图片到SD卡不能及时显示的问题
2017-11-30 11:02
537 查看
在做android图片保存到相册功能时,不能在相册中及时看到保存的图片。需要扫描某个文件或者扫描整个SD卡。
步骤:
1、保存图片到相册:
ContentResolver cr = mContext.getContentResolver();
String url = MediaStore.Images.Media.insertImage(cr, bitmap, "", "");
返回的是保存图片的路径url(形式为content://...)。(这里需要转化为路径形式 storage/...)
写一个方法uriToPath(String urlString):
/**
* 将uri转换成手机的图片Media的绝对路径
*
* @param urlString
* @return
*/
private static String uriToPath(String urlString) {
if (null == urlString || "".equals(urlString)) {
return "";
}
String path = "";
Uri uri = Uri.parse(urlString);
Cursor cur = GlobalUtils.getAppContext().getContentResolver().query(uri, null, null, null, null);
if (null != cur && cur.moveToNext()) {
int index = cur.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cur.moveToFirst();
path = cur.getString(index);
}
if (null != cur) {
cur.close();
}
return path;
}
2、保存图片之后对这个文件进行扫描:
fileScan(uriToPath(url))...
/**
* 扫描某个文件
*
* @param filePath
*/
public static void fileScan(String filePath) {
Uri data = Uri.parse("file://" + filePath);
mContext.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, data));
}
3、另外提供一种扫描整个SD卡的方法:
/**
* 扫描整个SD卡
*
*/
public static void sdScan() {
mContext.sendBroadcast(
new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));
}
步骤:
1、保存图片到相册:
ContentResolver cr = mContext.getContentResolver();
String url = MediaStore.Images.Media.insertImage(cr, bitmap, "", "");
返回的是保存图片的路径url(形式为content://...)。(这里需要转化为路径形式 storage/...)
写一个方法uriToPath(String urlString):
/**
* 将uri转换成手机的图片Media的绝对路径
*
* @param urlString
* @return
*/
private static String uriToPath(String urlString) {
if (null == urlString || "".equals(urlString)) {
return "";
}
String path = "";
Uri uri = Uri.parse(urlString);
Cursor cur = GlobalUtils.getAppContext().getContentResolver().query(uri, null, null, null, null);
if (null != cur && cur.moveToNext()) {
int index = cur.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cur.moveToFirst();
path = cur.getString(index);
}
if (null != cur) {
cur.close();
}
return path;
}
2、保存图片之后对这个文件进行扫描:
fileScan(uriToPath(url))...
/**
* 扫描某个文件
*
* @param filePath
*/
public static void fileScan(String filePath) {
Uri data = Uri.parse("file://" + filePath);
mContext.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, data));
}
3、另外提供一种扫描整个SD卡的方法:
/**
* 扫描整个SD卡
*
*/
public static void sdScan() {
mContext.sendBroadcast(
new Intent(Intent.ACTION_MEDIA_MOUNTED,
Uri.parse("file://" + Environment.getExternalStorageDirectory())));
}
相关文章推荐
- 保存图片到SD卡,但是Gallery中不能及时显示的问题
- Android相机、相册获取图片显示(压缩)并保存到SD卡
- Android相机、相册获取图片显示并保存到SD卡 - Ryan's zone 的案例
- Android 保存图片到相册无法显示的问题
- Android Camera存图片到SD卡 及时更新的问题
- Android 4.4 的权限问题,导致App 裁剪图片不能保存(已解决)
- Android相机、相册获取图片显示并保存到SD卡
- Android相机、相册获取图片显示并保存到SD卡
- Android保存图片到系统不能及时生成缩略图的解决办法
- android读取Assets图片资源保存到SD卡然后显示到ImageView里 实例
- Android 保存图片到相册无法显示的问题
- 【移动开发】Android相机、相册获取图片显示并保存到SD卡
- android保存图片到sdcard后,在图片浏览器不能马上显示出来
- android打开,保存图片到sd卡,显示图片
- Android Camera存图片到SD卡 及时更新的问题
- Android保存图片到系统不能及时生成缩略图的解决办法
- Android RadioButton左边图片不能居中显示问题
- Android相机、相册获取图片显示并保存到SD卡
- android保存图片后相册中不能马上显示的解决、!
- Android 保存图片到相册无法显示的问题