head first java,铃声排行,电脑wifi热点软件
一个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 studio 解决logcat无过滤工具栏的操作
Android Studio 恢复小窗口停靠模式(Docked Mode)
Android studio保存logcat日志到本地的操作
Android Studio快捷键生成TAG、Log.x日志输出介绍
网友评论