android 图片Uri转换为本地地址

这是一个关于如何在Android中将图片Uri转换为本地文件路径的方法。该方法适用于处理来自相机和相册的不同类型的Uri,通过ContentResolver查询获取实际的文件地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在此记录一下,以后应该会用到


转换类
/** 
     * 通过Uri返回File文件 
     * 注意:通过相机的是类似content://media/external/images/media/231321 
     * 通过相册选择的:file:///storage/sdcard0/DCIM/Camera/IMG_12312321.jpg 
     * 通过查询获取实际的地址 
     * @param uri 
     * @return 
     */  
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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值