一,从本地获取相册中的图片,并获取图片的URI

从本地选择图片上传到服务器时,首先要打开本地图片或文件管理器选择要上传的文件,代码如下
  1. Intent intent =newIntent(Intent.ACTION_GET_CONTENT);
    intent.setType("image/*");
    startActivityForResult(intent, intentType);

      

然后重写onActivityResult()方法获取图片实际路径
  1. @Override
    protectedvoid onActivityResult(int requestCode,int resultCode,Intent data){
    if(requestCode == FILECHOOSER_RESULTCODE){
    if(null== mUploadMessage){
    return;
    }
    Uri result = data ==null|| resultCode != RESULT_OK ?null: data.getData();
    if(result ==null){
    mUploadMessage =null;
    return;
    }
    String filename = getRealPathFromURI(result);
    if(filename !=null){
    result =Uri.fromFile(newFile(filename));
    }
    mUploadMessage.onReceiveValue(result);
    mUploadMessage =null;
    }
    }
我们的目标是通过获取到的URI用CursorLoader加载到Cursor中,然后去到path,网上基本上都是这样使用的,最近在android4.4上测试出现了问题
通过以上代码可以获取到URI,可是拿不到path。
所选择的图片URI原本是"

content://com.android.providers.media.documents/document/image:8191

",然后通过Uri uri= data.getData();所拿到的uri却变成了"

content://com.android.providers.media.documents/document/image%3A8191

",image后边的冒号自动转义了,而且uri也跟一般所见"

content://media/external/images/media/63

"这样的uri格式不同,网上查找后终于找到解决方法:

  1. Intent i =newIntent(Intent.ACTION_PICK,MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    startActivityForResult(Intent.createChooser( i,"选择图片"),WebViewActivity.FILECHOOSER_RESULTCODE );
换成以上代码启动选择图片就会调用系统默认的图片管理软件,选择,返回的uri就是标准的uri了。

最新文章

  1. 封装一些常用的js工具函数-不定时更新(希望大家积极留言,反馈bug^_^)
  2. 适配ios10(iTunes找不到构建版本)
  3. ORA-28000: the account is locked-的解决办法
  4. 防asp木马运行
  5. 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败/OLE DB 错误: OLE DB 或 ODBC 错误 :
  6. 放在jsp头部的代码
  7. list,set,map,数组间的相互转换
  8. MaxSubArray 最大子数列和
  9. Node.js学习笔记(二):模块
  10. Sleeping会话导致阻塞原理(下)
  11. linux grep 和 sed使用
  12. VUE环境项目搭建以及简单的运行例子
  13. RC522射频卡读写模块驱动(仅读取)
  14. Bootstrap轮播如何支持移动端左右滑动
  15. 基于 SSL 的 Nginx 反向代理
  16. 【BZOJ 4819】 4819: [Sdoi2017]新生舞会 (0-1分数规划、二分+KM)
  17. Python2.7.14安装和pip配置安装及虚拟环境搭建
  18. 通过一个uri获取一个Bitmap对象
  19. C#中一道关于多线程的基础练习题——模拟仓库存销过程
  20. CentOS7.1 Liberty云平台之Dashboard篇(7)

热门文章

  1. HttpClient和WebService的区别和介绍
  2. centos安装——usb安装技术问题整理
  3. asterisk中eyebeam与移动的IMS帐号对接
  4. JAVA中抽象类的一些总结
  5. rsyncd.conf 文件
  6. crm SSRS 报表 导出格式控制
  7. 九度OJ1061
  8. golang 移动应用例子 example/basic 源码框架分析
  9. 基于nginx和uWSGI在Ubuntu上部署Djan
  10. HDU1269 迷宫城堡(裸强连通分量)