android图片文件的路径地址与Uri的相互转换
来源:互联网 发布:编程的双引号怎么打 编辑:程序博客网 时间:2024/05/16 13:55
一个android文件的Uri地址一般如下:
content://media/external/images/media/62026
这是一张图片的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.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0821/1660.html
0 3
- android图片文件的路径地址与Uri的相互转换
- android图片文件的路径地址与Uri的相互转换
- android图片文件的路径地址与Uri的相互转换
- android图片文件的路径地址与Uri的相互转换
- android图片文件的路径地址与Uri的相互转换
- android图片文件的路径地址与Uri的相互转换
- android图片文件的路径地址与Uri的相互转换
- android 路径地址与Uri的相互转换 uri转string
- android 路径地址与Uri的相互转换 uri转string
- android 图片路径path和uri之间的相互转换
- URI 和 文件路径 的相互转换
- android Uri利用及解析(文件操作)以及与路径的相互转换
- 图片uri与path的相互转换
- Android图片路径与Uri相互转化
- 文件File path与content:// Uri的相互转换
- 文件File path与content:// Uri的相互转换
- android通过系统调用图片文件的Uri转换为绝对文件路径
- Uri的相互转换
- UILabel
- 2016 数据的交换输出
- iBatis开发详解(8)------------使用XML
- VK Cup 2015 - Finals, online mirror F. Clique in the Divisibility Graph 数论
- iOS UI02.2_UIView,UILabel,UIButton,UItextfield归纳
- android图片文件的路径地址与Uri的相互转换
- UIButton
- 创建文件有个问号
- iBatis开发详解(9)-----------查询复杂集合
- iOS-代理委托的使用
- HDOJ--2141 Can you find it?(包含题意)
- 主子报表多数据源的处理
- 将mp3文件数据转换成.h的头文件的音频数据
- 在applet(java plugin)中与javascript通信