Android:三种方法更新手机系统图库

2016年01月21日 Android 1条评论 阅读3296次

Android:三种方法更新手机系统图库

在Android设备上处理一张图片是很常见的,处理完图片后一般要将其保存到存储卡中,如果直接执行下面这样的保存方法,结果是在系统图库中无法看到刚才保存图片。



private boolean saveImage(Context context, Bitmap bmp, String path) {
    // 传入要保存文件的路径
    File f = new File(path);
    if (f != null && !f.getParentFile().exists()) {
        f.getParentFile().mkdirs();
    }
    try {
        FileOutputStream out = new FileOutputStream(f);
        bmp.compress(Bitmap.CompressFormat.JPEG, 100, out);
        out.flush();
        out.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return false;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }
    return true;
}


想要更加方便的查看自己保存的图片,经常需要更新系统相册,也就是让系统相册重新扫描文件存储系统,并刷新图库,使得用户能在系统自带的相册图库中看到新保存入的图片。

综合各类资源,总结更新Android设备上系统图库的方法,归纳为下面几种。


// Insert into MediaStore.
ContentValues values = new ContentValues();
values.put(ImageColumns.TITLE, "title");
values.put(ImageColumns.DISPLAY_NAME, "filename.jpg");
values.put(ImageColumns.DATE_TAKEN, System.currentTimeMillis());
values.put(ImageColumns.MIME_TYPE, "image/jpeg");
values.put(ImageColumns.ORIENTATION, 0);
values.put(ImageColumns.DATA, path);
values.put(ImageColumns.WIDTH, bmp.getWidth());
values.put(ImageColumns.HEIGHT, bmp.getHeight());
try {
    Uri uri = context.getContentResolver().insert(
            Images.Media.EXTERNAL_CONTENT_URI, values);
    if (uri == null) {
        Log.e("jileniao.net", "Failed to insert MediaStore");
    } else {
        context.sendBroadcast(new Intent(
                "com.android.camera.NEW_PICTURE", uri));
    }
} catch (Exception e) {
    Log.e("jileniao.net", "Failed to write MediaStore", e);
}




sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path)));




String[] paths = { path };
String[] mimeTypes = { "image/jpeg" };
MediaScannerConnection.scanFile(context, paths, mimeTypes, new OnScanCompletedListener(){
    @Override
    public void onScanCompleted(String path, Uri uri) {
    }
});


当然最后一个参数传入为null也是没问题的。

以上三种方法各领风骚,使用时可依照个人喜好,独取一骚即可。

分享本文至:

WRITTEN BY

avatar
本文标签:androidgallery
看了本文是不是觉得很赞,那就赶紧点击下面按钮分享给身边的朋友吧!

1 条评论

  1. avatar APP_T9200

    安卓客户端新增加留言功能

欢迎留言




用户登录

sitemap