• 从手机获取图片让WebView支持本地上传图片


    一,从本地获取相册中的图片,并获取图片的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了。





  • 相关阅读:
    基于云计算的电子政务网站群整合模式为政府创造新的价值
    新技术下的智慧政府门户网站群建设升级发展之路
    集团企业网站群建设发展趋势
    省级网站群建设
    区县网站群建设改版过程
    区县网站群建设重点
    高校网站群建设方案简介
    我县政府网站集群建设经验总结
    政府网站集群建设
    CMS发展趋势之开源、插件
  • 原文地址:https://www.cnblogs.com/fighter/p/d4e35b0f1feb96b0840ac29b74b62b09.html
Copyright © 2020-2023  润新知