Android webview 微信分享图片

        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);
//构造一个Req

SendMessageToWX.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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值