Android 友盟分享自定义面板使用

一、说明
1. 友盟分享涉及到比较重要的类
  1. ShareAction:分享的主类
  2. SHARE_MEDIA:枚举类,定义了可分享平台的类型
  3. PlatformName:定义了所有可分享的平台名称

Platform 里比较特殊的一个“MORE”,说明一下,这个按钮会自动调起Android原生的分享,也就是Intent.SEND,但是有个比较坑的地方(PlatformName没有支持英文,也不支持修改,只能通过增加自定义按钮解决)。

2. 分享方式
  1. 方式一:使用ShareAction.share(); 调起分享(这个需要自己提供分享按钮)
  2. 方式二:使用ShareAction.open(); 弹出分享面板

二、效果

在这里插入图片描述

三、用例
  ShareBoardlistener shareBoardlistener = new ShareBoardlistener() {

                @Override
                public void onclick(SnsPlatform snsPlatform, SHARE_MEDIA share_media) {
                    if (share_media == null) {
                        //根据key来区分自定义按钮的类型,并进行对应的操作
                        switch (snsPlatform.mKeyword) {
                            case "custom_copy":
                                break;
                            case "custom_share":
                                break;
                            case "custom_more":
                                break;
                        }
                    } else {
                        //社交平台的分享行为
                        new ShareAction((Activity) context)
                                .setPlatform(share_media)
                                .setCallback(new UMShareListener() {
                                    @Override
                                    public void onStart(SHARE_MEDIA share_media) {

                                    }

                                    @Override
                                    public void onResult(SHARE_MEDIA share_media) {

                                    }

                                    @Override
                                    public void onError(SHARE_MEDIA share_media, Throwable throwable) {

                                    }

                                    @Override
                                    public void onCancel(SHARE_MEDIA share_media) {

                                    }
                                })
                                .withText("多平台分享")
                                .share();
                    }
                }
            };

            // 自定义ShareBoardConfig
            ShareBoardConfig config = new ShareBoardConfig().setStatusBarHeight(0)
                    .setShareboardBackgroundColor(context.getResources().getColor(R.color.app_theme_color)) // 设置面板颜色
                    .setMenuItemBackgroundColor(Color.TRANSPARENT) // 设置item背景颜色透明(不要背景色和背景框)
                    .setMenuItemTextColor(Color.WHITE) // 设置item文字颜色
                    .setTitleTextColor(Color.WHITE)
                    .setTitleText("SHARE TO");
//                    .setTitleVisibility(false) // 设置不显示弹窗标题
//                    .setIndicatorVisibility(false) // 设置不需要指示器(那个小点)
//                    .setCancelButtonVisibility(false); // 设置不需要取消按钮

            new ShareAction((Activity) context).withText("hello")
                    .setDisplayList(SHARE_MEDIA.WHATSAPP, SHARE_MEDIA.INSTAGRAM, SHARE_MEDIA.MORE)
                    // 自定义按钮参数顺序: icon平台描述, 平台名称(用于标识平台id) , icon name(正常icon) , icon name(置灰情况下的icon)
                    .addButton("More", "custom_more", "umeng_socialize_more", "umeng_socialize_more") // icon只要name就行,可以放drawable下
                    .addButton("Share", "custom_share", "umeng_socialize_menu_default", "umeng_socialize_menu_default")
                    .addButton("Copy url", "custom_copy", "umeng_socialize_copyurl", "umeng_socialize_copyurl")
                    .setShareboardclickCallback(shareBoardlistener)
                    .open(config);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柯基爱蹦跶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值