android图片文件的路径地址与uri的相互转换,android图片文件的路径地址与Uri的相互转换...

uri ---> 绝对路径

/**

* Try to return the absolute file path from the given Uri

*

* @param context

* @param uri

* @return the file path or null

*/

public static String getRealFilePath( final Context context, final Uri uri ) {

if ( null == uri ) return null;

final String scheme = uri.getScheme();

String data = null;

if ( scheme == null )

data = uri.getPath();

else if ( ContentResolver.SCHEME_FILE.equals( scheme ) ) {

data = uri.getPath();

} else if ( ContentResolver.SCHEME_CONTENT.equals( scheme ) ) {

Cursor cursor = context.getContentResolver().query( uri, new String[] { ImageColumns.DATA }, null, null, null );

if ( null != cursor ) {

if ( cursor.moveToFirst() ) {

int index = cursor.getColumnIndex( ImageColumns.DATA );

if ( index > -1 ) {

data = cursor.getString( index );

}

}

cursor.close();

}

}

return data;

}

绝对路径 -->uri

String 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 value

index = 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;

}

}

}

}



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/487706.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos 环境变量配置

CentOS系统下如何将PHP和mysql命令加入到环境变量中,在Linux CentOS系统上 安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行“php -v”命令查看当前php版本信…

5G时代,解锁机器视觉与千行百业的“完美关系”

来源: 脑极体在人工智能带来的诸多产业升级价值中,机器视觉毫无疑问将贡献最大的篇幅。无论是在工业、农业、服务业、金融业,基于视觉交互的智能解决方案都在智能化体系中占据了80%以上的比例。而且视觉往往还是知识图谱、语义分割、机器学习…

Tkinter图片按钮

1 imgBtn tk.PhotoImage(filetest.png) 2 tk.Button(imageimgBtn).pack() 3 tk.mainloop() 转载,来源简书评论,地址:http://www.jianshu.com/p/5c7a1af4aa53 侵删转载于:https://www.cnblogs.com/yechenkai/p/7429553.html

华为p10plus能用鸿蒙吗,华为P10/P10 Plus对比评测:自家兄弟大对决

华为P10/P10 Plus上手评测:离完美更近一步刚刚华为在巴塞罗那正式推出P10系列新机。早在发布会前,身边不少朋友都问“是等等S8还是选P10”。私以为这问题总有些眼熟。若干年前也是MWC,估计不少人会想:到底是买三星还是HTC。华为P1…

马斯克39页火星计划PPT曝光,我们能学到什么

来源:管理晨读本文ppt部分转载自公众号北美工程师求职顾问新闻报道部分来自于中新社SpaceX公司首席运营官马斯克一直梦想着移民火星,并在之前完成了许多的开发计划和实验。很多人说他是异想天开,也有很多人觉得火星目前没有找到绿色生物&…

Tomcat安装与环境变量的配置

Tomacat的下载 去Tomcat官网下载,我使用的是apache-tomcat-7.0.78的版本。 安装 下载完成之后,我们解压缩到相应的目录。这里我解压缩到d盘下面 1、然后去配置系统的环境变量,新建系统变量: catalina_home 2、下面两个系…

android高德天气api接口,天气查询-API文档-开发指南-Web服务 API | 高德地图API

产品介绍天气查询是一个简单的HTTP接口,根据用户输入的adcode,查询目标区域当前/未来的天气情况。使用API前您需先申请Key,若无高德地图API账号需要先申请账号。适用场景需要使用相关天气查询的时候。使用限制服务调用量的限制请点击这里查阅…

Gartner对于建设「数据中台」的建议

来源:云技术(文:Gartner高级研究总监 孙鑫)数据中台是中国本土诞生的一个名词,很多企业在“什么是数据中台”和“我要上XX中台”徘徊。其炒作程度跟当年的“大数据” 一词有的一拼,如果用Gartner的炒作周期…

[python 学习] requests 库的使用

1、get请求 # -*- coding: utf-8 -*- import requestsURL_IP "http://b.com/index.php" pyload {cate:1,id:2} headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36} def use_…

直通输出设备 android kodi,【本地播放】利用Kodi媒体播放器轻松实现源码输出DTS到功放...

本帖最后由 PlyFly 于 2015-2-13 22:11 编辑各位花粉注意了,本次发布的B056固件,华为终于修复了DTS源码输出到功放不能正常解码的问题(如功放无声音、破音等等)。经实际测试,不用Kodi就能轻松将DTS源码输出到功放解码,且无任何异常…

3纳米、2纳米、1纳米芯片该如何造?

来源:EETOP编译目前台积电和三星正在加紧开发他们的3nm和2nm技术,目前预计分别在2022年和2024年推出。1nm及以上工艺也正在进行中,但是距离仍然很远。业界希望从3nm开始,从当今的finFET晶体管过渡到全能栅极或称为环绕式栅极FET(G…

字符串数组

字符串:用双引号引起来的多个字符“\0” 是字符串结束标志 字符串的存储方式 字符数组 字符指针 字符串的键盘输入:字符串在输入时只能使用字符数组,不能使用字符指针 字符串的库函数:str系列函数共四种:strcmp:比较是否相同 (从两…

华为鸿蒙os再见了安卓,再见了安卓!华为鸿蒙OS 2.0正式登场,开机只需19秒

大家也都知道,华为从前年开始就被老美打压,以至于无法使用谷歌GMS服务,而从去年开始,华为祭出了鸿蒙OS大招,并且也从1.0版本迭代到了2.0版本,首个搭载机型也由6月份发布的P50提前至近期入网的Mate40 Pro 4G…

万字长文概览深度学习的可解释性研究

作者:知乎—王小贱地址:https://www.zhihu.com/people/wang-xiao-jian-38-81《深度学习的可解释性研究概览》包含3篇内容,作者将用尽可能浅显的语言带领大家了解可解释性的概念与方法以及关于深度学习可解释性工作的研究成果。深度学习的可解…

html如何让框架的边框消失,css如何让边框透明?

透明一般认为是一种颜色属性,但是并没有这个数值。我们找到了一种让边框实现透明的最佳方案,运用RGBA设置。css可以使用RGBA设置边框透明,RGBA在RGB的基础上多了控制alpha透明度的参数,我们使用RGBA设置边框颜色同时可以设置边框透…

spring boot / cloud (七) 使用@Retryable来进行重处理

spring boot / cloud (七) 使用Retryable来进行重处理 前言 什么时候需要重处理? 在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败,调用远程服务失败,争抢锁失败,等等,这些错误可能是因为网络波动造成的,等待过后重处理就能成功.通常来说,会用try/catch,while循环…

前沿研究丨数字孪生与信息物理系统——比较与联系

本文选自中国工程院院刊《Engineering》2019年第4期作者:陶飞,戚庆林,王力翚,A.Y.C. Nee来源:Digital Twins and Cyber–Physical Systems toward Smart Manufacturing and Industry 4.0: Correlation and Comparison[…

MySQL 数据库系列课程 03:MySQL数据库相关软件的下载和安装

俗话说:“工欲善其事,必先利其器”,开始学习 MySQL 之前我们一定是要做环境准备的,接下来我们来讲解一下 MySQL 的安装。 一、MySQL下载 步骤一:官方入口的寻找 (1)大家可以尝试在官网寻找 M…

js `` 手机不支持

转载于:https://www.cnblogs.com/web-fusheng/p/7449485.html

吴明曦:马斯克的天基互联网与未来6G地基互联网优劣比较分析

来源:远望智库预见未来作者:吴明曦,远望智库特约专家马斯克的“天基互联网”与华为6G为代表的“地基互联网”,未来谁更有优势?这是大家比较关心的问题,下面做一个简要分析。马斯克在2017年提出了由11943颗小…