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君与你共勉。有需要完整代码的请留言。

原文地址:https://www.cnblogs.com/wzqnxd/p/9019568.html

时间: 2024-08-12 08:43:25

android 集成友盟分享之后,想自定义分享面板的看过来的相关文章

android使用友盟实现第三方登录、分享以及微信回调无反应问题解决办法

        Leaning_wk每一次的进步都会拉近与成功的距离! 帐号设置退出   关闭 qq_15855289的博客 目录视图 摘要视图 订阅 异步赠书:Kotlin领衔10本好书      免费直播:AI时代,机器学习如何入门?      程序员8月书讯      每周荐书:Java Web.Python极客编程(评论送书) android使用友盟实现第三方登录.分享以及微信回调无反应问题解决办法 标签: android友盟第三方登录分享微信登录回调问题 2017-02-10 16:2

Android集成友盟推送功能

友盟是中国最大的移动开发者服务平台,为移动开发者提供免费的应用统计分析.社交分享.消息推送.自动更新.在线参数.移动推广效果分析.微社区等app开发和运营解决方案. 如何快速集成友盟推送功能: 1. 注册友盟账号 友盟开发者账号的注册地址:http://www.umeng.com/users/sign_up 2. 创建推送应用 首先进入友盟消息推送的应用中心,创建一个应用,链接地址为:http://message.umeng.com/appList. 应用创建完成后,点击应用名称进入应用详情页面

Android集成友盟社会化分享功能

1.  产品概述 友盟社会化组件,可以让移动应用快速具备社会化分享.登录.评论.喜欢等功能,并提供实时.全面的社会化数据统计分析服务. 指南将会手把手教你使用社会化组件SDK,用5分钟为APP增加新浪微博.腾讯微博.人人网分享功能. 注意:本文示例代码均针对最新版SDK,如果你所用SDK的类名或方法名与此文不符合,请使用你所用SDK的随包文档.或者下载使用最新版SDK. 2.  获取友盟Appkey 如果你之前已经在友盟注册了应用,并获取到了Appkey,可以继续使用它. 如果你尚未在友盟注册开

Android应用开发-小巫CSDN博客客户端之集成友盟社会化分享组件

Android应用开发-小巫CSDN博客客户端之集成友盟社会化分享组件 上一篇博客给大家介绍了如何分析网页并且使用jsoup这个库对html代码进行解析,本篇博客继续给大家介绍如何集成友盟社会化组件,如何使用SDK提供的API轻松实现多平台的社会化分享,官网的文档和Demo看起来很头疼的有木有,小巫在集成这个社会化的组件也有点烦躁,所以也需要各位耐心看下面的博文把友盟社会化组件集成到你的应用中去.为什么要选择友盟呢,这里也是答应了小喵的,要帮忙集成他们的服务,所以也顺带帮他们写一篇这样的博文,千

请问android使用友盟分享,分享到微信好友和朋友圈详细步骤是什么,我现在分享之后没结果。

============问题描述============ 请问android使用友盟分享,分享到微信好友和朋友圈详细步骤是什么,我现在分享之后没结果.弹出来图片大小超过32kb,然后分享中 就没反应了 ============解决方案1============ 引用 楼主 zpq19870824 的回复: 请问android使用友盟分享,分享到微信好友和朋友圈详细步骤是什么,我现在分享之后没结果.弹出来图片大小超过32kb,然后分享中 就没反应了 我也不知道,帮你顶一下吧...

集成友盟的意见反馈功能

最近一直在开发毕业设计的项目,其中用到了很多自己没接触过的东西,就包括集成友盟SDK的意见反馈模块的内容了.确实用了一点心思在里面,捣鼓了一阵子,中间也遇到了一些问题,关键这问题也不好解决,问大神大神也不一定有去接触这一块,然后网上是有很多资料,但总感觉对我的帮助不是很大,所以,当完成了友盟的这块功能后,就特别想贡献出来,一是为以后方便自己重温这块知识点,二是顺便 发布出来帮助像我这样遇到问题一直寻求解决办法的人.好了,废话不多说了,直接上效果图,然后PO代码! 效果图如下: 当然顺便也po上友

友盟Umeng统计、自定义统计使用

友盟统计分析是移动终端上不可多得的佳品,鉴于在开发中使用到,随笔写下使用过程. 友盟SDK下载(包含统计功能和自动更新功能): 第一步:导入SDK 1. 解压文件,libs 文件夹内的jar文件直接复制到eclipse工程同名文件夹内:然后点击build Path 2. 将 res 内所有文件复制到eclipse工程内,合并res资源,所有资源前缀均为 umeng_ . 第二步:添加权限及相关信息 1. 使用统计功能添加如下权限: <uses-permission android:name=&quo

iOS集成友盟推送

之前有写过利用Python自己写一个推送服务器, 今天说下如果集成友盟的推送服务 在这之前我们需要做一些准备动作 #1. 注册一个App ID #2. Enable Push NotificationSerivice, 并创建和下载开发/发布推送证书 #3. 安装推送证书, 然后把推送证书到处为p12文件 #4. 注意友盟账号 #5. 创建一个推送应用, 并上传推送证书的p12文件和填写密码 #6. 下载SDK, 添加到项目中 在AppDelegatez #import "UMessage.h&

iOS app 集成友盟推送问题

之前做app推送主要是集成友盟SDK,在程序获取deviceToken时,老是提示如下错误: Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的权利字符串" UserInfo=0x14dc69e0 {NSLocalizedDescription=未找到应用程序的“aps-environment”的权利字符串} 打印获取deviceToken错误代码 - (void)application:(UIAp