上次封装了分享图片资源的处理趁着有空 把分享功能进行了整合封装

ShareLib

集成微信微博QQ分享功能

1.接入工程
在主工程的build.gradle 中添加maven仓库地址

maven { url "https://dl.bintray.com/thelasterstar/maven/" }// 主要针对微博分享sdk

并添加sharelib依赖
2.初始化分享sdk(配置分享sdk key值

// 初始化分享sdk各个平台的注册key值
ShareManager.initWxShareSdk("wxappid");
ShareManager.initSinaSdk("新浪AppId","重定向地址","scrop");
ShareManager.initQqSdk("qqAppId","分享成功后返回按钮的名称");

3.构造分享平台及数据数据

// 构建分享平台数据
SharePlamFormData data1 = new SharePlamFormData().withQqMessageBuilder(new SharePlamFormData.QQMessageBuilder().buidWebMessage("http://www.baidu.com","http://f8.topitme.com/8/25/80/1125177570eea80258o.jpg","标题","内容")).withWxChatMessageBuilder(new SharePlamFormData.WxChatMessageBuilder().buildedrImageMessage("http://f8.topitme.com/8/25/80/1125177570eea80258o.jpg",null)).withWxMomentMessageBuilder(new SharePlamFormData.WxMomentMessageBuilder().buidWebMessage("http://www.baidu.com","http://f8.topitme.com/8/25/80/1125177570eea80258o.jpg","标题","内容")).withSinaMessageBuilder(new SharePlamFormData.SinaMessageBuilder().builderImageWithTextMessage("标题","内容","http://www.baidu.com","http://f8.topitme.com/8/25/80/1125177570eea80258o.jpg"));QQMessageBuilder 构造分享到QQ的数据
WxChatMessageBuilder 构造分享到微信好友的分享数据
WxMomentMessageBuilder 构造分享到朋友圈的分享数据
SinaMessageBuilder 构造分享到新浪微博的分享数据
可以根据需求构造需要的分享平台,如
    .withQqMessageBuilder(newSharePlamFormData.QQMessageBuilder().buidWebMessage("http://www.baidu.com","http://f8.topitme.com/8/25/80/1125177570eea80258o.jpg","标题","内容")).withWxChatMessageBuilder(new SharePlamFormData.WxChatMessageBuilder().buildedrImageMessage("http://f8.topitme.com/8/25/80/1125177570eea80258o.jpg",null)).withWxMomentMessageBuilder(new SharePlamFormData.WxMomentMessageBuilder().buidWebMessage("http://www.baidu.com","http://f8.topitme.com/8/25/80/1125177570eea80258o.jpg","标题","内容"))

此种情况只会添加 QQ 微信好友 微信朋友圈 三个分享按钮.

4.发起分享
4.1 直接部分不调起分享控件

new ShareManager(this).withPlamFormData(data1.getPlamFormDatas()).share();```
此种分享只会分享平台集合数据的第一项数据。
4.2 调起分享控件进行分享
 new ShareManager(this).withPlamFormData(data1.getPlamFormDatas()).open();

5.自定义
分享lib支持自定义分享控件的布局 但平台按钮ID需固定

QQ:btn_share_qq 微信好友:btn_share_wechat 微信朋友圈:btn_share_wechat_moments 微博分享:btn_share_weibo
View customView = View.inflate(MainActivity.this,R.layout.view_custom_dialog,null);final ShareManager shareManager = new ShareManager(MainActivity.this).withCustomDialogView(customView) // 自定义view.withDialogDimAmount(0).withPlamFormData(data1.getPlamFormDatas()).withPlamformClickListener(new ShareDialog.OnPlamFormClickListener() { // 点击平台按钮动作回调 可以用于打点等@Overridepublic void onPlamFormClick(View view, int plamForm) {Toast.makeText(MainActivity.this, "plamForm:" + plamForm, Toast.LENGTH_LONG).show();}});

自定义图片变换操作

// 额外图片的获取
private Observable<Bitmap> dowloadExtraObservable = Observable.create(emitter -> {Bitmap bitmap = Glide.with(getApplicationContext()).asBitmap().load("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1515476758278&di=1a65b298738b7467faff309b7df72fb3&imgtype=0&src=http%3A%2F%2Fscimg.jb51.net%2Fallimg%2F161207%2F102-16120H243090-L.jpg").submit(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL).get();Log.e(TAG, "onNext");emitter.onNext(bitmap);emitter.onComplete();});
// 当额外图片准备好后的后续操作 此功能可用于对分享的图片添加水印或者二维码等操作
shareManager.withExtralOperator(dowloadExtraObservable ,new BiFunction<Bitmap, Bitmap, Bitmap>() {@Overridepublic Bitmap apply(Bitmap posterBitmap, Bitmap bitmap2) throws Exception {Bitmap finalBitmap = Bitmap.createBitmap(posterBitmap.getWidth(), posterBitmap.getHeight(), Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(finalBitmap);canvas.drawBitmap(posterBitmap, 0, 0, null);canvas.drawBitmap(bitmap2, 0, 0, null);Log.e(TAG, "setBitmapOpreatorFuncation");return finalBitmap; //返回最终的数据}})```
//更新分享平台数据
当分享过程中某一平台的数据有变化时可以更新单个平台的数据。
shareManager.updataPlamForm(new SharePlamFormData.SinaMessageBuilder().builderImageWithTextMessage("标题1","内容1","http://www.baidu.com","http://f8.topitme.com/8/25/80/1125177570eea80258o.jpg").build());

“`
自定义下载
lib默认采用的是glide进行图片的下载

public class GlideImageDownload implements IShareImageDownLoad {

@Override
public Bitmap dowwnload(Context context, String url) throws Exception {RequestOptions options = new RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL);return Glide.with(context).asBitmap().load(url).apply(options).submit().get();
}

}
···

···
shareManager.withDownload(new IShareImageDownLoad() {

    @Overridepublic Bitmap dowwnload(Context context, String url) throws Exception {return null;}})

···

github 地址

封装微信微博QQ分享lib快速使用相关推荐

  1. wex5插件追加下载文件预览文件微信微博QQ分享

    documenthandler插件使用方法 目录 1.概述 2.JS调用方法 3.注意事项 概述 documenthandler插件的功能是下载指定url的文件并使用系统注册过的应用打开.支持Andr ...

  2. 快速接入 微信微博QQ钉钉 原生登录分享

    使用 微博.QQ.微信.钉钉 原生 SDK 接入,提供这些平台的登录.分享功能支持.针对业务逻辑对各个平台的接口进行封装,对外提供一致的表现,在减轻接入压力的同时,又能获得原生 SDK 最大的灵活性. ...

  3. 「开源」快速接入微信微博QQ钉钉登录分享

    使用 微博.QQ.微信.钉钉 原生 SDK 接入,提供这些平台的登录.分享功能支持.针对业务逻辑对各个平台的接口进行封装,对外提供一致的表现,在减轻接入压力的同时,又能获得原生 SDK 最大的灵活性. ...

  4. 《社交红利》读书总结--如何从微信微博QQ空间等社交网络带走海量用户、流量与收入...

    <社交红利--如何从微信微博QQ空间等社交网络带走海量用户.流量与收入>--徐志斌 著 <社交红利>这本书2013年9月才上市,卖的非常火. 我最初是在公司内部的期刊上,看到有 ...

  5. 《社交红利》读书总结--如何从微信微博QQ空间等社交网络带走海量用户、流量与收入

    <社交红利--如何从微信微博QQ空间等社交网络带走海量用户.流量与收入>--徐志斌 著 <社交红利>这本书2013年9月才上市,卖的非常火. 我最初是在公司内部的期刊上,看到有 ...

  6. 类似微信,微博,QQ的头像截图功能, 图片支持缩放

    类似微信,微博,QQ的头像截图功能, 图片支持缩放, 不多说了, 直接上源码! http://pan.baidu.com/s/1gdJxb03

  7. 微信或QQ分享IOS应用时显示“未验证”问题相关文章汇总

    微信或QQ分享IOS应用时显示"未验证"问题相关文章汇总 1.IOS官方说明与解决方案 2.QQ互联官方关于此问题的通知 3.QQ互联官方提供的解决方案 4.QQ互联对Univer ...

  8. android 实现微博分享,分享到微信微博QQ的简单实现(二)

    NOTE:这只是简单的实现,没有使用各自的SDK.基本思路是通过包名和类名来直接操作的.如果app修改了名字,可能就需要对应的修改报名和类名. 之前有分享到微信,QQ的代码,自行查找,就在上一篇博客. ...

  9. Android分享文件到qq没反应,Android 微信,qq分享文件

    10M以下,建议进制算法为*1000以避免1024发生分享错误 将文件变成二进制数组,然后塞进去就OK了,我这边是直接传入的base64码省略了部分步骤 qq分享类似,不过是用intent来的 只能分 ...

最新文章

  1. springboot整合mybatis和mybatis-plus
  2. 用户切换命令:su 与 sudo
  3. 艾伦·图灵破译纳粹密码,被视为计算机和人工智能领域的先驱。
  4. 美团点评效果广告实验配置平台的设计与实现
  5. html5 --- canvas绘制网格并画x、y轴
  6. 深入理解mysql中case when流程控制语句
  7. Jenkins快速介绍及自动化构建实战
  8. 一本shell编程书籍上的有bug的shell程序,看谁能找出问题所在。
  9. android手机通讯录格式转换,手机通讯录csv格式转vcf格式工具 安卓电话本数据格式转换程序...
  10. python3简单爬取妹纸图网站图片
  11. 南方CASS9.0软件资源下载附安装教程
  12. 美股相关交易规则与业务知识
  13. DeepFaceLab教程 DeepFaceLab新手入门教程
  14. 教你区别几款常用的U盘修复工具
  15. SpringBoot项目运行环境问题【统一答疑】
  16. RFID固定资产管理系统中的RFID标签的使用-新导智能
  17. VUE登录注册页面,完整vue,直接复制
  18. NXP i.MX 8处理器再扩军!全新i.MX 8X处理器剑指工业与汽车应用
  19. 7 SY Vue 原理 副本 页面编辑错误
  20. 4米乘以12米CAD图_身高1米6,却能在12顺位被选中?单场4分19助,他有多强?

热门文章

  1. 原来真有外挂,QQ自动抢红包,JAVA可以实现!卧槽
  2. 爬取站长之家免费简历
  3. 虫虫asp建站源码_gg.asp 源代码在线查看 - 一个企业网站的php源代码 资源下载 虫虫电子下载站...
  4. jQuery常用插件(如何调用jQuery插件学习第一天)
  5. 硬件大熊原创合集(2022/07更新)
  6. 健身房老板跑路怎么办
  7. 问卷与量表数据分析(SPSS+AMOS)学习笔记(三) : 数据分析工具,三线表的制作
  8. PYNQ-Z2调试笔记:在Microblaze软核中编程运行C程序
  9. docker运行yyets_docker 安装 运行 卸载
  10. html保护环境主题,有关保护环境主题的手抄报内容