android之微信分享图片
来源:互联网 发布:curl json 编辑:程序博客网 时间:2024/05/21 11:18
android之微信分享图片
微信图像分享分为三类1、二进制图片2、本地图片3、URL地址图片
XML分析:三个Button 添加点击事件!
注意清单文件 权限
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
1、分享二进制图片:
将Bitmap转换成byte格式的数组 类
参数1: 穿入bitmap对象,参数2: 是否释放资源
private byte[] bitmapToByteArray(Bitmap bitmap, boolean recycle) { ByteArrayOutputStream output = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, output); if (recycle) { bitmap.recycle(); } byte[] result = output.toByteArray(); try { output.close(); } catch (Exception e) { e.printStackTrace(); } return result; }
二进制图片分享代码:
//第一步:获取二进制图像的Bitmap对象 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);// 第二步:创建WXImageObject,并包装bitmap WXImageObject imgObj = new WXImageObject(bitmap);// 第三步:创建WXMediaMessage对象,并包装WXimageObjext对象 WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = imgObj;// 第四步:压缩图片 Bitmap thumBitmap = bitmap.createScaledBitmap(bitmap, 120, 150, true);// 释放图片占用的内存资源 bitmap.recycle(); msg.thumbData = bitmapToByteArray(thumBitmap, true);//压缩图// 第五步:创建SendMessageTo.Req对象,发送数据 SendMessageToWX.Req req = new SendMessageToWX.Req();// 唯一标识 req.transaction = buildTransction("img");// 发送的内容或者对象 req.message = msg; req.scene = send_friend.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req);
2、分享本地图片:
第一步:判读图像文件是否存在 String path ="/storage/emulated/0/image/123.jpg"; File file = new File(path); if(!file.exists()) { Toast.makeText(MainActivity.this, "文件不存在", Toast.LENGTH_SHORT).show(); }// 第二步:创建WXImageObject, WXImageObject imgObj = new WXImageObject();// 设置文件的路径 imgObj.setImagePath(path);// 第三步:创建WXMediaMessage对象,并包装WXimageObjext对象 WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = imgObj;// 第四步:压缩图片 Bitmap bitmap = BitmapFactory.decodeFile(path); Bitmap thumBitmap = bitmap.createScaledBitmap(bitmap, 120, 150, true);// 释放图片占用的内存资源 bitmap.recycle(); msg.thumbData = bitmapToByteArray(thumBitmap, true);//压缩图// 第五步:创建SendMessageTo.Req对象,发送数据 SendMessageToWX.Req req = new SendMessageToWX.Req();// 唯一标识 req.transaction = buildTransction("img");// 发送的内容或者对象 req.message = msg; req.scene = send_friend.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req);
3、分享URL图片:
由于主线程中不能请求网络,需要开启线程:
Thread thread = new Thread(new Runnable() { @Override public void run() { try {// 第一步:创建WXImageObject对象,并设置URL地址 String url = "http://avatar.csdn.net/2/C/8/1_small_and_smallworld.jpg"; WXImageObject imgObj = new WXImageObject();// 设置图片的url imgObj.imageUrl = url;// 第二步:创建WXMediaMeaasge对象,包装WXImageObject对象 WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = imgObj;// 第三步:压缩图片 Bitmap bitmap = BitmapFactory.decodeStream(new URL(url).openStream()); Bitmap thumBitmap = bitmap.createScaledBitmap(bitmap, 120, 150, true);// 释放资源 bitmap.recycle(); msg.thumbData = bitmapToByteArray(thumBitmap, true);// 第四部:创建SendMessageTo.Req对象,发送数据 SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransction("img"); req.message = msg; req.scene = send_friend.isChecked()? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req); } catch (Exception e) { e.printStackTrace(); } } }); thread.start();
}
阅读全文
0 0
- android之微信分享图片
- Android 分享功能之 微信 图片分享
- Android 微信分享图片!!!
- Android 微信分享之图片加载失败
- Android之微信分享
- android分享之微信分享
- [Android] 微信分享多张图片。
- 微信分享图片 文字 Android原生分享图片文字 微信小程序分享
- android开发之微信分享小计
- android之微信分享文本
- android之微信分享音频
- android微信分享之视频、URL地址、表情分享
- Android应用实现微信分享(微信好友,朋友圈),分享链接,图片,文字
- iOS 分享功能之图片压缩(微信好友-朋友圈)
- 在android平台微信分享图片中带超链接
- Android中把图片分享到QQ、微信等
- Android微信分享图片大于32k进行压缩
- android微信分享到朋友圈 图片过大闪退
- boost库编译与安装
- C语言单元小结(6)
- 数据结构实验之排序四:寻找大富翁
- Maven-01-私服搭建及使用
- 贪吃蛇的游戏设计和算法
- android之微信分享图片
- 文件传输基础——Java IO流
- C# 设计模式-生成器(Builder)
- 求两个整数的最大公约数
- Hbase-API-KeyValue、写缓冲区
- 智能蛇
- 蓝桥杯vip题 分解质因素
- Unity 物理系统
- java学习 2017-12-23