前言
分享很简单。但是是个非常烦人的东西,说简单很简单,但是很耗时,如果有一些精细化的东西在里面。所以这个东西总结出来,节省时间
分享(很烦的一件事,但是做好了可以省很多事)
微信
- 压缩图片
private byte[] bmpByteArray(final Bitmap bitmap,final boolean needRecycle) {
ByteArrayOutputStream output=new ByteArrayOutputStream();//定义一个字节数组输出流对象,用于接收转换后二进制的结果
bitmap.compress(Bitmap.CompressFormat.PNG, 100,output);//把二进制的结果放在output对象中
if (needRecycle) {
bitmap.recycle();//释放图片资源的内存
}
byte [] result=output.toByteArray();//把output对象转化成实际的数组
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
- 媒体分享
//第一步创建:WXVideoObject对象,用来指定音频的Url
WXVideoObject videoObject=new WXVideoObject();
videoObject.videoUrl="http://v.youku.com/v_show/id_XODkyNjAyMzg4.html";//http://startv.m.yinyuetai.com/v2-1/app/share.html?videoId=1987&channelId=82&from=singlemessage
//第二步:创建WXMediaMessage对象
WXMediaMessage msg=new WXMediaMessage();
msg.mediaObject=videoObject;
msg.title="Mikyou最爱之---秦时明月之帝子降兮";
msg.description="唯美中国风";
//第三步指定缩略图:
Bitmap thmuBitmap=BitmapFactory.decodeResource(mActivity.getResources(), R.drawable.splash);
Bitmap thBitmap=Bitmap.createScaledBitmap(thmuBitmap, 120, 120, true);//注意:压缩的缩略图的尺寸有限制(视频的缩略图尺寸不能超过:120*120),否则后面的api.sendReq(req)会返回false
msg.thumbData=bmpByteArray(thBitmap, true);
- 分享URL图片
public boolean shareWechatWithNetUrlPic(final int mFlag) {
final IWXAPI api = WXAPIFactory.createWXAPI(mActivity, AppSetting.WEIXIN_APP_ID, false);
api.registerApp(AppSetting.WEIXIN_APP_ID);
if (!api.isWXAppInstalled()) {
ToastUtils.showWarnToast("手机中没有安装微信客户端");
return false;
}
ToastUtils.showSuccessToast(mActivity.getResources().getString(R.string.share_go_to));
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//初始化一个wxwebpageobject对象 填写url
WXWebpageObject webpageObject = new WXWebpageObject();
webpageObject.webpageUrl = getShareUrl();
//用wxwebpageobject对象初始化一个wxmediamessage对象 填写标题 描述
WXMediaMessage msg = new WXMediaMessage(webpageObject);
msg.title = getShareDescription();
msg.description = getShareDescription();
Bitmap thumb = BitmapFactory.decodeResource(mActivity.getResources(), R.mipmap.ic_launcher);
WXImageObject imageObject=new WXImageObject();
//设置Url
imageObject.imagePath=mImageIconUrl;
Bitmap bitmap= null;//用网络流获取图片
try {
bitmap = BitmapFactory.decodeStream(new URL(mImageIconUrl).openStream());
} catch (IOException e) {
YYTLog.e("test---"+e.getMessage());
}
Bitmap thBitmap=Bitmap.createScaledBitmap(bitmap, 120, 65, true);
bitmap.recycle();//释放图像所占用的图片内存资源
msg.thumbData=bmpByteArray(thBitmap, true);//设置缩略图
//构造一个req
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("yyt_share", 1);
req.message = msg;
req.scene = mFlag == 0 ? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline;
//调用api接口发送数据到微信
api.sendReq(req);
}
});
thread.start();
return true;
}
ps:比例不能超过150,否则分享不出去。
微博
待续。。。