Webview 调用Android微信分享图片的方法原本的思路是先将图片下载手机本地,然后读取图片去做分享操作,思路是对的,但是在实现过程中遇到了问题,本来打算用Glide的保存图片到手机中,然后读取,在Android环境下下载,保存,加载图片都是没有问题的,但是在webview 中调用方法确实报了错。之后换了一种思路,将从服务器上获取图片直接转换字节输入流InputStream

如图:

URL pictureUrl = new URL(url);InputStream in = pictureUrl.openStream();bitmap = BitmapFactory.decodeStream(in);

然后再调用微信分享图片的方法就可以了,具体过程如下所示:

com.alibaba.fastjson.JSONObject jsonObject = JSON.parseObject(data);String url = jsonObject.getString("img").toString();Bitmap bmp =getHttpBitmap(url);//初始化 WXImageObject 和 WXMediaMessage 对象WXImageObject imgObj = new WXImageObject(bmp);WXMediaMessage msg = new WXMediaMessage();msg.mediaObject = imgObj;//设置缩略图Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 10, 10, true);bmp.recycle();msg.thumbData = Util.bmpToByteArray(thumbBmp, true);//构造一个ReqSendMessageToWX.Req req = new SendMessageToWX.Req();req.transaction = buildTransaction("img");req.message = msg;req.scene = SendMessageToWX.Req.WXSceneTimeline;Constant.wx_api.sendReq(req);

 

public Bitmap getHttpBitmap(String url){    Bitmap bitmap = null;    try    {        URL pictureUrl = new URL(url);        InputStream in = pictureUrl.openStream();        bitmap = BitmapFactory.decodeStream(in);        in.close();    } catch (MalformedURLException e)    {        e.printStackTrace();    } catch (IOException e)    {        e.printStackTrace();    }    return bitmap;}

这样处理的话,就不用下载图片了,哈哈用户体验效果也好,没有耗时操作。

 

 

 
 

 

更多相关文章

  1. [android]获取各应用的启动次数和运行时间
  2. 【Android】安卓AVD无法上网解决方案
  3. android事件拦截处理机制图解
  4. android TIPS小结
  5. android volley 框架图片请求后有时会导致第一次初始化过慢的原
  6. 浅谈Android程序与JavaScript脚本的交互
  7. 斐波那契函数的优化
  8. Android(安卓)显示Intent和隐示Intent
  9. Android(安卓)AIDL远程调用

随机推荐

  1. Android(安卓)Content Provider
  2. android多媒体框架之流媒体框架----base
  3. Android Studio3.0新特性及安装详解
  4. android控件的对齐方式
  5. Android(安卓)线性布局(LinearLayout)相关
  6. Android安全加密:对称加密
  7. Kotlin让Android更简单~
  8. Android View布局xml常用 属性详解
  9. Android调用WCF
  10. Android Linux 内核介绍 (转)