Android 实现图片、视频即时更新到相册

              分享是一种快乐,一个个小小的问题困扰良久,终于找到一篇行之有效的方法,简单几行代码实现了图片和视频的同步更新到系统图库,代码如下:

/**
* 将视频插入图库
* @param url 视频路径地址
*/
public void updateVideo(String url){
      File file=new File(url);
      //获取ContentResolve对象,来操作插入视频
      ContentResolver localContentResolver = this.getContentResolver();
      //ContentValues:用于储存一些基本类型的键值对
      ContentValues localContentValues = getVideoContentValues(this, file, System.currentTimeMillis());
      //insert语句负责插入一条新的纪录,如果插入成功则会返回这条记录的id,如果插入失败会返回-1。
      Uri localUri = localContentResolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,                           localContentValues);
}

//再往数据库中插入数据的时候将,将要插入的值都放到一个ContentValues的实例当中
public static ContentValues getVideoContentValues(Context paramContext, File paramFile, long paramLong){
     ContentValues localContentValues = new ContentValues();
     localContentValues.put("title", paramFile.getName());
     localContentValues.put("_display_name", paramFile.getName());
     localContentValues.put("mime_type", "video/3gp");
     localContentValues.put("datetaken", Long.valueOf(paramLong));
     localContentValues.put("date_modified", Long.valueOf(paramLong));
     localContentValues.put("date_added", Long.valueOf(paramLong));
     localContentValues.put("_data", paramFile.getAbsolutePath());
     localContentValues.put("_size", Long.valueOf(paramFile.length()));
     return localContentValues;
}

//android把图片文件添加到相册
public void udpateMedia(String url){
     //图片路径
     File file=new File(url);
     ContentResolver localContentResolver = getContentResolver();
     ContentValues localContentValues = getImageContentValues(UnityPlayerNativeActivity.this, file,      System.currentTimeMillis());
     localContentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, localContentValues);
     Intent localIntent = new Intent("android.intent.action.MEDIA_SCANNER_SCAN_FILE");
     final Uri localUri = Uri.fromFile(file);
     localIntent.setData(localUri);
     //发送广播即时更新图库
     sendBroadcast(localIntent);
}

//再往数据库中插入数据的时候将,将要插入的值都放到一个ContentValues的实例当中
public static ContentValues getImageContentValues(Context paramContext, File paramFile, long paramLong){
     ContentValues localContentValues = new ContentValues();
     localContentValues.put("title", paramFile.getName());
     localContentValues.put("_display_name", paramFile.getName());
     localContentValues.put("mime_type", "image/jpeg");
     localContentValues.put("datetaken", Long.valueOf(paramLong));
     localContentValues.put("date_modified", Long.valueOf(paramLong));
     localContentValues.put("date_added", Long.valueOf(paramLong));
     localContentValues.put("orientation", Integer.valueOf(0));
     localContentValues.put("_data", paramFile.getAbsolutePath());
     localContentValues.put("_size", Long.valueOf(paramFile.length()));
     return localContentValues;
}

原文地址: 点击打开链接   

如果大家对ContentResolver、ContentProvider不熟悉。有三篇文章还不错:链接1,点击阅览         链接2,点击阅览        链接3,点击阅览


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值