访问服务器的图片然后分享:先压缩图片保存在本地,在从本地拿图片分享出去,由于微信分享的图片要求在32k一下,所以要转换成缩略图
//直接访问网络图片的url
String titleUrl = "www.baidu.com";//标题url
String smallProductUrl = "www.baidu.com";//图片url
Glide.get(EnterGroupActivity.this).clearMemory();
Glide.with(EnterGroupActivity.this).load(smallProductUrl).asBitmap().into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
//由于微信分享的图片要求在32k一下,所以要转换成缩略图
// 首先保存图片
File appDir = new File(getExternalStorageDirectory(), "gxs");
if (!appDir.exists()) {
appDir.mkdir();
}
//生成时间为名称的图片名称
String fileName = System.currentTimeMillis() + ".jpg";
File file = new File(appDir, fileName);
try {
FileOutputStream fos = new FileOutputStream(file);
resource.compress(Bitmap.CompressFormat.JPEG, 100, fos);
String imagepath = getExternalStorageDirectory() + "/gxs/"+fileName;
ShareUtil.showShare(EnterGroupActivity.this,titleUrl,"邀好友,拿佣金",imagepath,"xxx");
// AbToastUtil.showToast(MyQrCodeActivity.this,"保存已经至"+ getExternalStorageDirectory() + "/gxs/share.jpg");
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 其次把文件插入到系统图库
try {
MediaStore.Images.Media.insertImage(EnterGroupActivity.this.getContentResolver(),
file.getAbsolutePath(), fileName, null);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// 最后通知图库更新
EnterGroupActivity.this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + path)));
}
});
ShareUtil.java
public class ShareUtil {
public ShareUtil() {
}
public static void showShare(Context context,String titleUrl, String content, String useravater, String title) {
OnekeyShare oks = new OnekeyShare();
//关闭sso授权
oks.disableSSOWhenAuthorize();
// title标题,印象笔记、邮箱、信息、微信、人人网、QQ和QQ空间使用
oks.setTitle(title);
// titleUrl是标题的网络链接,仅在Linked-in,QQ和QQ空间使用
oks.setTitleUrl(titleUrl);
// text是分享文本,所有平台都需要这个字段
oks.setText(content);
//分享网络图片,新浪微博分享网络图片需要通过审核后申请高级写入接口,否则请注释掉测试新浪微博
// oks.setImageUrl(useravater);
// imagePath是图片的本地路径,Linked-In以外的平台都支持此参数
oks.setImagePath(useravater);//确保SDcard下面存在此张图片
// url仅在微信(包括好友和朋友圈)中使用
oks.setUrl(titleUrl);
// comment是我对这条分享的评论,仅在人人网和QQ空间使用
// oks.setComment("我是测试评论文本");
// site是分享此内容的网站名称,仅在QQ空间使用
// oks.setSite("ShareSDK");
// // siteUrl是分享此内容的网站地址,仅在QQ空间使用
// oks.setSiteUrl("http://sharesdk.cn");
// 启动分享GUI
oks.show(context);
}
}
效果图