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 "未找到应用 ...
随机推荐
- codeforces 258D DP
D. Little Elephant and Broken Sorting time limit per test 2 seconds memory limit per test 256 megaby ...
- BZOJ - 2744 朋友圈 (二分图上的最大团)
[题目大意] 在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着.一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目.两 ...
- Linux文件类型 扩展名的作用
链接类型文件 查找显示管道文件 普通文件类型 file 查看文件的类型 data文件类型 创建块字和符设备 mknod 1,.tar .tar.gz .tgz .zip tar.bz 表示压缩文件,创 ...
- python基础——18(面向对象2+异常处理)
一.组合 自定义类的对象作为另一个类的属性. class Teacher: def __init__(self,name,age): self.name = name self.age = age t ...
- Linux程序编辑器习题汇总
简答题部分: 1.我用vi开启某个档案后,要在第34行向右移动15个字符,应该在一般模式中下达什么指令? (1)先按下34G到34行:(2)再按下[l5+向右键],或[l5l]亦可! 2.在vi开启的 ...
- Linux档案与文件系统的压缩与打包
总结: 压缩指令为透过一些运算方法去将原本的档案进行压缩,以减少档案所占用的磁盘容量.压缩前与压缩后的档案所占用的磁盘容量比值,就可以被称为是“压缩比” 压缩的好处是可以减少磁盘容量的浪费,在www网 ...
- 03012_会话技术Cookie&Session
1.会话技术简介 (1)存储客户端的技术 网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识 ...
- Springmvc 重定向参数传递方式
Springmvc 通过return "redirect:" 实现重定向 重定向的状态码301 302 301,302 都是HTTP状态的编码,都代表着某个URL发生了转移 ...
- day14 前端基础 HTML
从今天开始,学习前端基础. 前端,就是HTML CSS JS 等 对于我们这种初学者,并不知道这些专业术语都是什么,给大家举一个形象的例子: HTML 就是一个人,赤裸裸的人 CSS 就是衣服 ...
- IOS应用程序开发流程
应用程序开发流程 1.IOS开发需要思考的问题 用户是谁?不同应用程序的内容和用户体验大不相同,这取决于想要编写的是什么应用程序,它可能是儿童游戏,也可能是待办事项列表应用程序,又或者是测试自己学习成 ...