android 集成友盟分享之后,想自定义分享面板的看过来
第一种情况
首先上传一张默认的友盟分享的效果图

看起来还不错,但是总是有这样那样的原因,需要我们对默认效果做出一些改变。
第二种情况
如果你想做出下面的效果:

或者这样的效果 :

总之上面的效果总是在默认的基础上(及原有的控件基础上做出改变,改变颜色,背景,背景颜色等等一些基本的改变),
如果你真的遇到了这样的需求很简单:你可以直接登录友盟的开发文档中有十分详细的介绍,很简单的
下面是一些截图:


好,截图结束。
你可以直接进去看。
第三章情况
有了前两种情况,如果还没有满足你的需求,那么咱们今天的重点来了。你想要完全自定义。
例如我们项目需要达到下面的效果

我看了友盟开发文档,可以改变上面Textview的颜色,但是我想给它后面加一张背景图片,很显然满足不了我的需求,友盟没有给我提供
方法和接口。怎么办呢?
下面用dialog自定义的方式实现
(1)定义view 的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="@dimen/dip_80"
android:background="@drawable/fxyl_tk_bg">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/whites"
android:text="您的邀请码:123456"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/dip_8"
android:layout_centerHorizontal="true"/>
</RelativeLayout>
<LinearLayout
android:layout_marginTop="@dimen/dip_20"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RelativeLayout
android:id="@+id/view_share_weixin"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ImageView
android:id="@+id/share_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:src="@drawable/wxx" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/share_icon"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dip_13"
android:text="微信" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/view_share_weixinfriend"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ImageView
android:id="@+id/share_icon2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:src="@drawable/pyqx" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/share_icon2"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dip_13"
android:text="朋友圈" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/view_share_qq"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ImageView
android:id="@+id/share_icon3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:src="@drawable/qqx" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/share_icon3"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dip_13"
android:text="QQ" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/share_qqzone"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" >
<ImageView
android:id="@+id/share_icon4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:src="@drawable/kjx" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/share_icon4"
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dip_13"
android:text="QQ空间" />
</RelativeLayout>
</LinearLayout>
<TextView
android:layout_marginTop="@dimen/dip_10"
android:layout_marginBottom="@dimen/dip_10"
android:id="@+id/share_cancel_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="取消" />
</LinearLayout>
(2)在dialog中inflater 自定义view
private void showShareDialog() {
View view = LayoutInflater.from(ACountryTour.this).inflate(R.layout.customshare_layout, null);
// 设置style 控制默认dialog带来的边距问题
final Dialog dialog = new Dialog(this, R.style.common_dialog);
dialog.setContentView(view);
dialog.show();
// 监听
View.OnClickListener listener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.view_share_weixin:
// 分享到微信
share(SHARE_MEDIA.WEIXIN);
break;
case R.id.view_share_weixinfriend:
// 分享到朋友圈
share(SHARE_MEDIA.WEIXIN_CIRCLE);
break;
case R.id.view_share_qq:
// 分享到qq
share(SHARE_MEDIA.QQ);
break;
case R.id.share_qqzone:
// 分享到qq空间
share(SHARE_MEDIA.QZONE);
break;
case R.id.share_cancel_btn:
// 取消
break;
}
dialog.dismiss();
}
};
ViewGroup mViewWeixin = (ViewGroup) view.findViewById(R.id.view_share_weixin);
ViewGroup mViewPengyou = (ViewGroup) view.findViewById(R.id.view_share_weixinfriend);
ViewGroup mViewqq= (ViewGroup) view.findViewById(R.id.view_share_qq);
ViewGroup mViewqqzone = (ViewGroup) view.findViewById(R.id.share_qqzone);
TextView mBtnCancel = (TextView) view.findViewById(R.id.share_cancel_btn);
mViewWeixin.setOnClickListener(listener);
mViewPengyou.setOnClickListener(listener);
mViewqq.setOnClickListener(listener);
mViewqqzone.setOnClickListener(listener);
mBtnCancel.setOnClickListener(listener);
// 设置相关位置,一定要在 show()之后
Window window = dialog.getWindow();
window.getDecorView().setPadding(0, 0, 0, 0);
WindowManager.LayoutParams params = window.getAttributes();
params.width = ViewGroup.LayoutParams.MATCH_PARENT;
params.gravity = Gravity.BOTTOM;
window.setAttributes(params);
}
完美实现了效果

注意:
1.定义dialog的弹窗位置:

2.实现底部对齐充满屏幕属性后发现会有边距,这时候需要重新定义dialog style,默认情况下的style中是带有padiing的
<!-- 默认的style -->
<style name="common_dialog" parent="@android:style/Theme.Dialog">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
</style>
谢谢你来过。android君与你共勉。有需要完整代码的请留言。
或者可以自己去下载:de'mo地址:https://download.csdn.net/download/heishuai123/10555076
android 集成友盟分享之后,想自定义分享面板的看过来的更多相关文章
- android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法
这里介绍微信和新浪登录.微信登录和新浪登录都需要申请第三方账号.可以参考官方文档http://dev.umeng.com/social/android/operation#2还是很清晰的. 新浪微博开 ...
- Android集成友盟社会化分享功能
1. 产品概述 友盟社会化组件,可以让移动应用快速具备社会化分享.登录.评论.喜欢等功能,并提供实时.全面的社会化数据统计分析服务. 指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪 ...
- Android集成友盟facebook分享
在项目中需要将图片和视频分享到社交平台,所以集成了友盟分享.在集成facebook分享的时候走了不少弯路,现在将过程记录下来. 1.先将友盟facebook的jar包复制到项目的libs文件夹下. 2 ...
- Android Cocos2d-x游戏集成友盟社会化组件分享功能
最近在帮助开发者集成友盟社会化组件的过程中,发现游戏的集成过程遇到一些困难,而Cocos2d-x具有较好的代表性,因此整理了一篇关于Android Cocos2d-x游戏集成友盟社会化组件指南,由于本 ...
- Android开发之带你轻松集成友盟统计
友盟统计是什么呢?为什么要集成他呢? 当我们需要获取自己写的软件的装机量和用户使用信息时,这时我们可以集成友盟统计. 首先到友盟统计中注册账号什么的就不废话了,直接看创建项目: 在个人中心中的管理里面 ...
- React Native中集成友盟社会化分享-----童叟无欺
1.下载所需的jar,下载地址https://developer.umeng.com/sdk/reactnative?spm=a211g2.211692.0.0.28967d238GW6mC 2.将以 ...
- Xamarin.Android 绑定友盟社会化分享组件
Xamarin.Android 绑定友盟社会化分享组件 最近在开发博客园Android App的时候需要用到友盟社会化分享组件,在github上搜了一下都没有找到最新版本绑定好的项目,就自己动手来绑定 ...
- android使用友盟第三方自动更新/手动更新
最近项目用到自动更新,发现一个方便快捷的第三方组件非常好用,只需要几行代码搞定,非常适合新手使用.分享给大家一起学习. 本文档帮助您以最快速最简洁的方式集成使用自动更新组件. 一.申请友盟开发者账号创 ...
- iOS app 集成友盟推送问题
之前做app推送主要是集成友盟SDK,在程序获取deviceToken时,老是提示如下错误: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用 ...
随机推荐
- Tomcat 在 Linux 下的自动启动脚本
很多服务都需要设置为开机自启动.将下面代码复制到 /etc/rc.d/init.d/tomcat ,然后执行 chkconfig –add tomcat chkconfig tomcat on 就可以 ...
- CodeForces 781D Axel and Marston in Bitland DP
题意: 有一个\(n\)个点\(m\)条边的无向图,边有两种类型,分别用\(0\)和\(1\)标识 因此图中的任意一条路径都对应一个\(01\)字符串 定义一个无限长的字符串\(s\): 开始令\(s ...
- laravel5.2总结--请求
1 获取请求 1.1 获取请求的 URI 1>path 方法会返回请求的 URI.所以,如果接收到的请求目标是 http://domain.com/foo/bar,那么 path 方法就 ...
- kubernetes大概的工作原理
先放一张Kubernetes的架构图: 整体来看,是一个老大,多个干活的这种结构,基本上所有的分布式系统都是这样,但是里面的组件名称就纷繁复杂,下面将一一解析. 1.元数据存储与集群维护 作为一个集群 ...
- 59、小米电视安装apk(无u盘操作)
第一步 打开电视或者盒子,找到应用商店 第二步 打开应用商店 第三步.打开应用商店后,找到用户,别切换到快捷安装 第四步.记住地址,使用在同一网络下的电脑打开此网页 第五步.页面效果如图 第六步.找到 ...
- 转:vc与界面开发之间的文章
[很好的一篇文章,很喜欢看同行的心路历程:http://www.vckbase.com/index.php/nv/444.html] 本屌丝在新春放假期间闲来无事,在各大编程论坛溜达了一圈.发现年前的 ...
- _cdecl _stdcall
__cdecl程序的压栈方式为C风格__stdcall为PASCAL风格 举个例子:(1) C函数 Fun1(a,b,c) 函数调用时,参数压栈顺序为 c , b , a(2) PASC ...
- Java类和对象 详解(一)---写的很好通俗易懂---https://blog.csdn.net/wei_zhi/article/details/52745268
https://blog.csdn.net/wei_zhi/article/details/52745268
- k8s与CICD--借助scp插件实现非容器项目的部署
一直没有时间完成drone系列文章.drone-wechat插件实现了一半,由于企业微信token申请比较麻烦,所以也没有进展.今天抽出时间,研究了一下scp插件,主要目的是实现非容器项目的部署.其实 ...
- mojoportal中使用jquey的插件
以前在mojo中使用jquery的插件,都是把插件的文件内容直接写到了相关的模块中,这样的问题是不整洁,一大串代码. 如果直接在layout.master中引入插件文件,或者在自定义模块中引入插件文件 ...