android图片文件的路径地址与Uri的相互转换方法
程序员文章站
2023-08-15 10:16:05
一个android文件的uri地址一般如下:
content://media/external/images/media/62026
这是一张图片的uri,那么我们如...
一个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的相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
上一篇: 腊肉怎么腌,一起来看看
下一篇: linux系统下pwd命令用法详解