老马的技术博客 android系统通过图片绝对路径获取URI的三种方法
原文地址http://www.cnblogs.com/mytech-blog/p/3201549.html
1.将所有的图片路径取出,遍历比较找到需要的路径,取出URI,效率较低
其中 MediaStore.MediaColumns.DATA 字段存的就是图片的绝对路径,
最后mImageUri得到的就是图片的URI
Uri mUri = Uri.parse("content://media/external/images/media");
Uri mImageUri = null;
Cursor cursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null,MediaStore.Images.Media.DEFAULT_SORT_ORDER);
cursor.moveToFirst();while (!cursor.isAfterLast()) {String data = cursor.getString(cursor.getColumnIndex(MediaStore.MediaColumns.DATA));if (picPath.equals(data)) {int ringtoneID = cursor.getInt(cursor.getColumnIndex(MediaStore.MediaColumns._ID));mImageUri = Uri.withAppendedPath(mUri, "" + ringtoneID);break;}cursor.moveToNext();
}
2.直接从媒体数据库根据字段取出相应的记录,效率较高
//TYLT: add by duanyf 20121027 startString type = Utils.ensureNotNull(intent.getType());Log.d(TAG, "uri is " + uri);if (uri.getScheme().equals("file") && (type.contains("image/"))) {String path = uri.getEncodedPath();Log.d(TAG, "path1 is " + path);if (path != null) {path = Uri.decode(path);Log.d(TAG, "path2 is " + path);ContentResolver cr = this.getContentResolver();StringBuffer buff = new StringBuffer();buff.append("(").append(Images.ImageColumns.DATA).append("=").append("'" + path + "'").append(")");Cursor cur = cr.query(Images.Media.EXTERNAL_CONTENT_URI,new String[] { Images.ImageColumns._ID },buff.toString(), null, null);int index = 0;for (cur.moveToFirst(); !cur.isAfterLast(); cur.moveToNext()) {index = cur.getColumnIndex(Images.ImageColumns._ID);// set _id valueindex = cur.getInt(index);}if (index == 0) {//do nothing} else {Uri uri_temp = Uri.parse("content://media/external/images/media/"+ index);Log.d(TAG, "uri_temp is " + uri_temp);if (uri_temp != null) {uri = uri_temp;}}}}//TYLT: add by duanyf 20121027 end
3.直接根据路径通过 ContentProvider 的 delete() 方法删除图片,两行代码搞定,效率最高
1 String params[] = new String[]{filepath};
2 ctx.getContentResolver().delete(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, MediaStore.Images.Media.DATA + " LIKE ?", params);
老马的技术博客 android系统通过图片绝对路径获取URI的三种方法相关推荐
- android系统通过图片绝对路径获取URI的三种方法
老马的技术博客 android系统通过图片绝对路径获取URI的三种方法 最近做项目要通过图片的绝对路径找到图片的URI,然后删除图片,小小总结一下获取URI的方法,亲自试验在 android 4.1. ...
- android 缩略图uri_课题_android系统通过图片绝对路径获取URI的三种方法
最近做项目要通过图片的绝对路径找到图片的 URI ,然后删除图片,小小总结一下获取 URI 的方法,亲自试 验在 android 4.1.3 的系统上都是可用的. 1. 将所有的图片路径取出,遍历比较 ...
- android stringbuilder清空,StringBuffer 清空StringBuffer的实例的三种方法
@Test public void testStringbuffer(){ //StringBuffer类没有clear方法,不过可以通过下面两种方法来清空一个StringBuffer的实例: Str ...
- 如何用键盘打开设备管理器里计算机的属性,技巧:在Windows10系统中使用键盘打开设备管理器的三种方法...
我们经常使用设备管理器来检查Windows10系统中的硬件是否已正确安装驱动程序. 那么,当鼠标无用时如何打开win10设备管理器?接下来,System City的编辑器将介绍三种方法,无需使用键盘即 ...
- ZT自老罗的博客 Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析...
Android系统的智能指针(轻量级指针.强指针和弱指针)的实现原理分析 分类: Android 2011-09-23 00:59 31568人阅读 评论(42) 收藏 举报 androidclass ...
- 魅力网络技术博客图像处理正文 ps入门教程、ps修图基本工具使用方法视频教学...
PS界面介绍 污点修复工具 污点修复工具.修复画笔工具.红眼工具 使用教学 移动工具 移动工具使用方法(大丽博客) 裁剪工具 裁剪工具使用方法(大丽) 矩形工具之圆角矩形工具 如图片修成圆角边(图文教 ...
- 查看基于Android 系统单个进程内存 CPU使用情况的几种方法
首先给大家分享一个巨牛巨牛的人工智能教程,是我无意中发现的.教程不仅零基础,通俗易懂,而且非常风趣幽默,还时不时有内涵段子,像看小说一样,哈哈-我正在学习中,觉得太牛了,所以分享给大家!点这里可以跳转 ...
- Android获取屏幕截图的三种方法
本着博客不重复造车的原则,只谈下自己思路总结,只是提纲具体实现自行Google(另外吐槽一下baidu的搜索机制太特么挫了,对于时间最新文档的权值太低) 1.DecorView获取当前应用的截图 通过 ...
- Android获取网络图片的三种方法
在做项目中,获取网络数据是一件很常见的事情,各类数据在服务器端或直接print,或封以实体类扔进List转换为json,由客户端使用HttpClient的execute()方法接收,以完成数据交互的过 ...
最新文章
- java -jar 未响应_Java 方法性能监控和统计工具 MyPerf4J
- 【深度学习】深度神经网络框架的探索(从Regression说起)
- 天气预报开放API调用
- Pl/sql 如何将oracle的表数据导出成excel文件?
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结
- Nginx综合介绍以及配置文件详解
- 【dfs】【链表】连通图 (ssl 1758)
- 前端学习(2838):swiper等比
- 鸿蒙系统发布IT直播,华为开源平台上线:鸿蒙系统、方舟编译器在列
- 计算机视觉论文-2021-06-14
- Servlet-ServletConfig对象
- 信息安全管理ISO27001
- PacBio English 经典语句
- 推荐16个超棒的国外免费PSD资源素材网站
- 8.2 知识蒸馏方法概述
- TIDB集群搭建-流水线
- oracle序列号查询最大值,Oracle sequence值到了最大值的处理
- A92怎么获取root,A92参数
- 肿瘤细胞膜包裹纳米颗粒|MIA-PaCa-2胰腺癌细胞膜纳米金颗粒|使用周期:6-12个月
- web安全:XSS测试平台使用教程