转于:http://blog.csdn.net/kwongfung/article/details/8467442
--------------------------------------------------------------------------------------------
一、Uri
通用资源标志符(Universal Resource Identifier, 简称"URI")。
Uri代表要操作的数据,Android上可用的每种资源 - 图像、视频片段等都可以用Uri来表示。
URI一般由三部分组成:
访问资源的命名机制。
存放资源的主机名。
资源自身的名称,由路径表示。
Android的Uri由以下三部分组成: "content://"、数据的路径、标示ID(可选)
举些例子,如:
所有联系人的Uri: content://contacts/people
某个联系人的Uri: content://contacts/people/5
所有图片Uri: content://media/external
某个图片的Uri:content://media/external/images/media/4
二、内部保存
首先我们来看一下android是如何管理多媒体文件(音频、视频、图片)的信息。通过DDMS,我们在/data/data/com.android.providers.media下找到数据库文件
打开external.db文件进一步查看:在media表格下,可以看到文件路径(_data)和Uri的标示ID(_id)的对应关系。
三、相互转换
1.从Uri获得文件路径
- string myImageUrl = "content://media/external/images/media/***";
- Uri uri = Uri.parse(myImageUrl);
- String[] proj = { MediaStore.Images.Media.DATA };
- Cursor actualimagecursor = this.ctx.managedQuery(uri,proj,null,null,null);
- int actual_image_column_index = actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
- actualimagecursor.moveToFirst();
- String img_path = actualimagecursor.getString(actual_image_column_index);
- File file = new File(img_path);
- Uri fileUri = Uri.fromFile(file);
2、从文件路径获得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();
- }
相关推荐
android 根据uri获取真实路径
最近在工作的过程中,遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题。 因为需求的原因,要求拍照上传或者从相册中选择图片上传,而且图片是需要经过压缩的,大小不能超过2M。 很快,拍照的这部分...
尿路 将相对文件系统路径转换为安全URI路径安装npm install --save uri-path用法var URIpath = require ( 'uri-path' ) ;// Properly encode URI path segmentsURIpath ( '../abc/@#$%¨&()[]{}-_=+ß/môòñ 月 ق...
首先创建一个文件,用于保存拍照图像,然后根据不同系统版本获取Uri,传递给Intent,然后调起相机(可以考虑将outputImage、imageUri设置为全局变量)。 3、处理回调 使用BitmapFactory读取imageUri,得到bitmap,...
下面小编就为大家带来一篇android图片文件的路径地址与Uri的相互转换方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
Android中Uri和Path之间的转换 原因 调用系统拍照应用,拍照后要保存图片,那么我们需要指定一个存储图片路径的Uri。这就涉及到如何将file path转换为Uri。有时候我们还需要根据照片的路径得到照片的media Uri,那么...
在项目中需要用到将Uri转换为绝对路径,下面小编把Android Uri和文件路径互相转换的实例代码分享到脚本之家平台,需要的的朋友参考下吧
从文件uri获取真实文件路径 安装(iOS) 目前不支持 安装(Android) npm i react-native-get-real-path@https://github.com/Wraptime/react-native-get-real-path.git --save 对以下文件进行更改: android/...
本文实例讲述了android实现Uri获取真实路径转换成File的方法。分享给大家供大家参考。具体实现方法如下: Uri uri = data.getData(); String[] proj = { MediaStore.Images.Media.DATA }; Cursor actualimagecursor...
1、将一个文件路径path转换成File String path ; File file = new File(path) 2、讲一个Uri转换成一个path 以选择一张图片为例: String path = FileTools.getRealPathFromUri(content,uri); //自定义...
内容管理工作流程类似于静态网站的工作流程(文件路径和URI的一致性)。 在本地文件系统下进行无缝设计和预览。 使用TAL的布局宏,例如Dreamweaver库(但与Dreamweaver不同,它对SCM友好)。 设计文件和源代码具有...
网络上看到过很多种Uri转路径的方法,可基本上都只适用于很少的Uri值,可能没有结果(例如,对于由MediaStore索引的非本地文件),也可能没有可用的结果(例如,对于可移动存储上的文件)。 解决方法 使用...
多种文件读取路径: 网络共享(UNC),本地文件,http(web共享)
本文件介绍的是Anroid中Intent的使用方法,从谷歌中搜索内容;浏览网页;显示地图;路径规划;拨打电话;发送短信等简单功能实现
基本概念的理解绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz est.txt 代表了test.txt文件的绝对路径。http://www.sun.com/index.htm也代表了一个URL绝对路径。相对...
nginx指定文件路径有两种方式root和alias,这两者的用法区别,使用方法总结了下,方便大家在应用过程中,快速响应。root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方式将请求映射...