文档章节

解决分享到微信时带着图片报错的BUG

Cundong
 Cundong
发布于 2014/05/18 22:50
字数 467
阅读 8352
收藏 7

最近需要实现这样一个功能:

将一个url分享给微信好友or朋友圈        

于是就去微信开放平台注册了应用,下载了Android SDK,不得不说一句,微信的SDK写的真是太简陋了,能少说一句的绝对不多说一句,直接导致我在接入的时候走了不少弯路。

比如,分享url到给好友的时候,可以设置一个缩略图,如下图所示:

微信SDK提供了示例代码:

WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "http://www.baidu.com";
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage";
msg.description = "WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description ";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true);

SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);

  缩略图的设置,就是这一行代码:

msg.thumbData=某bitmap

  可是,当我使用自定义的Bitmap时候,却总是报错,并且报错也不给出任何提示信息,查了好久才在微信的api文档里找到了一个说明:

微信分享 缩略图(thumb):最大64KB,支持JPG格式

文档地址

汗死了。。负责写这个SDK的人也太省事了,连一个提示信息or注释也不写,就让开发者自己去试错。。

最后,是这样修改的:

int WX_THUMB_SIZE = 120;

Bitmap bmp = BitmapFactory.decodeFile(“/sdcard/test.jpg”);
			
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, WX_THUMB_SIZE, WX_THUMB_SIZE, true);
bmp.recycle();
msg.thumbData = WXUtil.bmpToByteArray(thumbBmp, true);

这个WX_THUMB_SIZE=120,是这样算出来的:

假设Bitmap是ARGB_8888格式,那么存储1个单位像素,需要用到的内存就是:8+8+8+8=32bit=4Byte

由此可以换算出来,如果图片不能超过64KB,那么一个正方形的图,长宽应该不能超过127.8592976674

我直接设置为120,问题解决。


© 著作权归作者所有

Cundong
粉丝 185
博文 28
码字总数 30973
作品 0
海淀
私信 提问
加载中

评论(1)

bxkwsm
bxkwsm
楼主最后两行代码写反了,先释放了,后边用的时候会报错。这个方法碉堡,找了一天,终于解决,感谢
WSTMart 1.4.2 发布,让 bug 不再飞

WSTMart 1.4.2 发布了,V1.4.2 版本主要新增以下功能: 【PC版】 本次版本要新增以下功能: 1.增加“忘记支付密码的功能”。 2.手机,微信版ajax添加商品后要更新购物车的商品数量。 3.修复不...

B2B2C商城系统
2017/05/24
365
4
WSTMart_v2.0.7_181022 发布,基于 thinkphp 5.1 的电商平台

商淘软件WSTMart电子商务系统是一款基于THINKPHP 5.1框架打造的B2B2C电商平台,是目前基于thinkphp 5最为完善的开源商城系统,拥有PC、手机WAP、微商城、安卓APP、苹果APP、微信小程序,六端合...

B2B2C商城系统
2018/10/31
458
0
蝉知企业门户系统 6.7.1 正式发布,修复 bug

蝉知企业门户系统是由业内资深开发团队开发的一款专向企业营销使用的企业门户系统,企业使用蝉知系统可以非常方便地搭建一个专业的企业营销网站,进行宣传,开展业务,服务客户。蝉知系统内置...

炒蚕豆吃蹦豆
2018/02/08
758
1
记录一次vue2.0(history模式)下微信自定义分享的坑

吐槽:关于微信自定义分享前前后后翻了文档两三遍,感觉大佬们写文档都是这么潇洒么?躲在角落里的我瑟瑟发抖了两天..... 下面我们(带着愤怒)来看微信文档来进行开发:传送门 1. 根据文档来...

One day,
2018/09/05
0
0
网市场云建站 v4.5 版本更新,帝国、织梦 CMS 的云上替代版

网市场云建站系统,结合各种产品,将一个网站的服务器成本降低到0.1元!打破传统建站的高成本,让价格不再是阻碍的门槛,让每个人都能有自己的网站! 延续了帝国CMS、织梦CMS优秀的模版流程,...

鬼画符
2018/11/01
1K
6

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部