Android(安卓)webview 微信分享图片
16lz
2021-01-25
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;}
这样处理的话,就不用下载图片了,哈哈用户体验效果也好,没有耗时操作。
更多相关文章
- [android]获取各应用的启动次数和运行时间
- 【Android】安卓AVD无法上网解决方案
- android事件拦截处理机制图解
- android TIPS小结
- android volley 框架图片请求后有时会导致第一次初始化过慢的原
- 浅谈Android程序与JavaScript脚本的交互
- 斐波那契函数的优化
- Android(安卓)显示Intent和隐示Intent
- Android(安卓)AIDL远程调用