android图片文件的路径地址与Uri的相互转换方法
发布时间 - 2026-01-11 00:54:31 点击率:次一个android文件的Uri地址一般如下:

content://media/external/images/media/62026
这是一张图片的Uri,那么我们如何根据这个Uri获得其在文件系统中的路径呢?
其实很简单,直接上代码:
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;
}
}
}
}
以上这篇android图片文件的路径地址与Uri的相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# android
# uri
# 文件路径
# Android如何通过URI获取文件路径示例代码
# Android Uri和文件路径互相转换的实例代码
# android实现Uri获取真实路径转换成File的方法
# Android7.0以上Uri转路径的方法实现(已验证)
# 给大家
# 这是
# 希望能
# 这篇
# 文件系统
# 小编
# 大家多多
# 如何获得
# 有一个
# 其实很简单
# 又该
# String
# context
# getRealFilePath
# final
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
大连 网站制作,大连天途有线官网?
Laravel storage目录权限问题_Laravel文件写入权限设置
如何在 Pandas 中基于一列条件计算另一列的分组均值
如何用PHP快速搭建高效网站?分步指南
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
Python文件操作最佳实践_稳定性说明【指导】
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
如何构建满足综合性能需求的优质建站方案?
如何确保FTP站点访问权限与数据传输安全?
奇安信“盘古石”团队突破 iOS 26.1 提权
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
如何在万网自助建站中设置域名及备案?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
QQ浏览器网页版登录入口 个人中心在线进入
如何在IIS7中新建站点?详细步骤解析
*服务器网站为何频现安全漏洞?
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
Laravel模型事件有哪些_Laravel Model Event生命周期详解
Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
HTML 中动态设置元素 name 属性的正确语法详解
Android自定义控件实现温度旋转按钮效果
香港网站服务器数量如何影响SEO优化效果?
Laravel怎么实现微信登录_Laravel Socialite第三方登录集成
EditPlus中的正则表达式 实战(2)
如何在建站之星网店版论坛获取技术支持?
常州企业网站制作公司,全国继续教育网怎么登录?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
长沙企业网站制作哪家好,长沙水业集团官方网站?
Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
北京的网站制作公司有哪些,哪个视频网站最好?
中山网站推广排名,中山信息港登录入口?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何在宝塔面板中创建新站点?
如何挑选优质建站一级代理提升网站排名?
JavaScript如何实现倒计时_时间函数如何精确控制
使用豆包 AI 辅助进行简单网页 HTML 结构设计
成都网站制作公司哪家好,四川省职工服务网是做什么用?
如何在七牛云存储上搭建网站并设置自定义域名?
如何在局域网内绑定自建网站域名?
如何自定义建站之星模板颜色并下载新样式?
JavaScript中如何操作剪贴板_ClipboardAPI怎么用
JavaScript如何实现音频处理_Web Audio API如何工作?
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
电商网站制作价格怎么算,网上拍卖流程以及规则?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
Laravel怎么使用artisan命令缓存配置和视图

