这几天在做的一个项目是有一个分享到微信的功能,要实现在分享中添加标题、描述、链接、缩略图实现分享。先来看一下官方的API文档:
网页类型分享示例:
//初始化一个WXWebpageObject对象,填写url
WXWebpageObject webpage = new WXWebpageObject();
webpage.webpageUrl = "网页url";
//用WXWebpageObject对象初始化一个WXMediaMessage对象,填写标题、描述
WXMediaMessage msg = new WXMediaMessage(webpage);
msg.title = "网页标题";
msg.description = "网页描述";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true);
//构造一个Req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");//transaction字段用于唯一标识一个请求
req.message = msg;
req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
//调用api接口发送数据到微信
api.sendReq(req);
缩略图的设置,就是这一行代码:
msg.thumbData=某bitmap
可见,官方的API只提供了加载本地资源图片的示例,并没有给出加载网络图片作为缩略图的示例代码,当然也很容易实现,只要我们把网络图片转换为Bitmap对象就可以了,可是,当我使用自定义的Bitmap时候,却总是报错,并且报错也不给出任何提示信息,最后才知道微信分享缩略图(thumb)最大64KB,居然有这么一个限制,所以只好做一些处理了。所有实现代码如下:
网络图片转换为Bitmap对象代码:
/**
* 把网络资源图片转化成bitmap
* @param url 网络资源图片
* @return Bitmap
*/
public static Bitmap GetLocalOrNetBitmap(String url) {
Bitmap bitmap = null;
InputStream in = null;
BufferedOutputStream out = null;
try {
in = new BufferedInputStream(new URL(url).openStream(), 1024);
final ByteArrayOutputStream dataStream = new ByteArrayOutputStream();
out = new BufferedOutputStream(dataStream, 1024);
copy(in, out);
out.flush();
byte[] data = dataStream.toByteArray();
bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
data = null;
return bitmap;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
private static void copy(InputStream in, OutputStream out)
throws IOException {
byte[] b = new byte[1024];
int read;
while ((read = in.read(b)) != -1) {
out.write(b, 0, read);
}
}
然后把示例代码里的那两行改为如下即可:
Bitmap thumb =Bitmap.createScaledBitmap(GetLocalOrNetBitmap("某网络资源图片"), 120, 120, true);//压缩Bitmap
msg.thumbData = Util.bmpToByteArray(thumb, true);
问题解决,成功实现微信分享。
荒野乱斗国际版 (BrawlStars)最新版本v56.274
下载一波超人内置修改器菜单版 安卓版v1.0.2
下载敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载继承了一座戏园子无限声望铜钱版 内置菜单最新版v1.7
继承了一座戏园子折相思版是游戏的破解版本,在该版本中为玩家提
山河半世橙光清软金手指版 无限鲜花v3.24
山河半世是一款超级好玩的橙光恋爱游戏,在游戏中玩家们需要扮演
蓬莱手游折相思版 安卓版v1.0.0
蓬莱免广告版是游戏的修改版本,在该版本中为玩家去除了广告,玩
当红影后橙光游戏破解版2025 最新版v1.0
当红影后橙光破解版是一款超级好玩的娱乐圈题材的橙光游戏,在这
忽然成了万人迷清软完结版 无限鲜花版v12.15
忽然成了万人迷破解版是一款非常好玩的男性向橙光游戏,在有一天