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

一、说明

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

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

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

二、效果

Android 友盟分享自定义面板使用_第1张图片

三、用例

  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);

你可能感兴趣的:(Android技术)