android分享 ------ 友盟分享(续)

本文介绍如何在Android应用中自定义一个分享组件,并通过友盟SDK实现微信、朋友圈、微博等渠道的分享功能。通过创建通用类和布局文件,实现了一键分享到多个社交平台的便捷操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

根据上一篇博客上所讲的友盟组件的分享,自己实现了一个通用类:

首先,布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:orientation="vertical" >
    
    <RadioGroup 
	    android:id="@+id/fragment_twice_left"
	    android:layout_height="wrap_content"
	    android:paddingTop="@dimen/DIMEN_40PX_DP"
	    android:paddingBottom="@dimen/DIMEN_40PX_DP"
	    android:layout_width="match_parent"
	    android:orientation="horizontal">
	    <RadioButton
        android:id="@+id/sharerb0"
        style="@style/share_style"
        android:text="微信"
        android:layout_marginLeft="@dimen/DIMEN_80PX_DP"
        android:drawableTop="@drawable/wx"
        android:checked="true"/>
        <RadioButton
        android:id="@+id/sharerb1"
         style="@style/share_style"
         android:drawableTop="@drawable/wxfri"
         android:layout_marginLeft="@dimen/DIMEN_60PX_DP"
        android:text="朋友圈"/>
        <RadioButton
        android:id="@+id/sharerb2"
        style="@style/share_style"
        android:drawableTop="@drawable/sina"
        android:layout_marginLeft="@dimen/DIMEN_60PX_DP"
        android:text="新浪"/>    
    	</RadioGroup>
	
</LinearLayout>

下面是分享类,注释都很清楚:

public class ShareUtil {
	
	private static UMSocialService mController;
	private static AlertDialog myDialog;
	
	/**
	 * performShare(SHARE_MEDIA.WEIXIN);微信
     * performShare(SHARE_MEDIA.WEIXIN_CIRCLE);微信朋友圈
     * performShare(SHARE_MEDIA.SINA);微博
	 * @param context
	 * @param mShareTitle 分享标题
	 * @param mShareContent 分享内容
	 * @param umImage 分享图片
	 * @param url 分享链接
	 * String mShareTitle = "XXXXAPP";
	 * String url = "XXXXAPP";
	 * String mShareContent = "我是分享内容";
	 * UMImage umImage = new UMImage(context, R.drawable.ic_launcher);		
	 */
	public static void alertDialog(final Context context,String mShareTitle,String mShareContent,UMImage umImage,String url) {
		initShare(context, mShareTitle, mShareContent, umImage,url);
		myDialog = new AlertDialog.Builder(context).create();
		myDialog.show();
		myDialog.setCanceledOnTouchOutside(true);
		myDialog.getWindow().setContentView(R.layout.activity_share_pop);
		WindowManager.LayoutParams layoutParams = myDialog.getWindow()
				.getAttributes();
		layoutParams.width = LayoutParams.MATCH_PARENT;
		layoutParams.height = LayoutParams.WRAP_CONTENT;
		myDialog.getWindow().setAttributes(layoutParams);
		myDialog.getWindow().setGravity(Gravity.BOTTOM);
		myDialog.getWindow().setWindowAnimations(R.style.AnimationFade);		
		// 微信
		myDialog.getWindow().findViewById(R.id.sharerb0)
				.setOnClickListener(new View.OnClickListener() {
					public void onClick(View v) {
						myDialog.dismiss();
						performShare(context,SHARE_MEDIA.WEIXIN);
					}
				});
		// 朋友圈
		myDialog.getWindow().findViewById(R.id.sharerb1)
				.setOnClickListener(new View.OnClickListener() {

					public void onClick(View v) {
						myDialog.dismiss();
						performShare(context,SHARE_MEDIA.WEIXIN_CIRCLE);
					}
				});
		// 新浪
		myDialog.getWindow().findViewById(R.id.sharerb2)
				.setOnClickListener(new View.OnClickListener() {
					public void onClick(View v) {
						myDialog.dismiss();
						performShare(context,SHARE_MEDIA.SINA);
					}
				});
	}
	
	/**
	 * 初始化分享
	 * @param context
	 * @param mShareTitle
	 * @param mShareContent
	 * @param umImage
	 */
	private static void initShare(Context context,String mShareTitle,String mShareContent,UMImage umImage,String url){
		mController = UMServiceFactory.getUMSocialService("com.umeng.share");
    	
		// 设置分享内容
		mController.setShareContent(mShareContent);
		//设置应用地址
		mController.setAppWebSite(url);
		
		// 设置分享图片,参数2为本地图片的资源引用
		mController.setShareMedia(umImage);
		
		
		SocializeConfig socializeConfig =  mController.getConfig();
		socializeConfig.closeToast();
	  	
		

		//修改这里的id和secret
		String appId = "xxxxxxxxxxxxxxxx";
		String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
		// 添加微信平台
		UMWXHandler wxHandler = new UMWXHandler(context,appId,appSecret);
		wxHandler.addToSocialSDK();
		// 添加微信朋友圈
		UMWXHandler wxCircleHandler = new UMWXHandler(context,appId,appSecret);
		wxCircleHandler.setToCircle(true);
		wxCircleHandler.addToSocialSDK();
		
		
		// 设置微信好友分享内容
        WeiXinShareContent weixinContent = new WeiXinShareContent();
        // 设置分享文字
        weixinContent.setShareContent(mShareContent);
        // 设置title
        weixinContent.setTitle(mShareTitle);
        // 设置分享内容跳转URL
        weixinContent.setTargetUrl(url);
        // 设置分享图片
        weixinContent.setShareImage(umImage);
        mController.setShareMedia(weixinContent);
 
        // 设置微信朋友圈分享内容
        CircleShareContent circleMedia = new CircleShareContent();
        circleMedia.setShareContent(mShareContent);
        // 设置朋友圈title
        //客户的需求分享到朋友圈的时候标题用内容
        circleMedia.setTitle(mShareContent);
        circleMedia.setShareImage(umImage);
        circleMedia.setTargetUrl(url);
        mController.setShareMedia(circleMedia);
        
        // 新浪微博
 		SinaShareContent sinaContent = new SinaShareContent();
 		sinaContent.setShareContent(mShareContent + "[url="+url+"]"+url+"[/url]");
 		sinaContent.setTitle(mShareTitle);
 		sinaContent.setTargetUrl(url);
 		sinaContent.setShareImage(umImage);
 		mController.setShareMedia(sinaContent);
 		
	}
	
    /**
     * 分享
     * performShare(SHARE_MEDIA.WEIXIN);微信
     * performShare(SHARE_MEDIA.WEIXIN_CIRCLE);微信朋友圈
     * performShare(SHARE_MEDIA.SINA);微博
     * @param context
     * @param platform
     */
    private static void performShare(final Context context,SHARE_MEDIA platform) {
    	mController.postShare(context, platform, new SnsPostListener() {

            @Override
            public void onStart() {

            }

            @Override
            public void onComplete(SHARE_MEDIA platform, int eCode, SocializeEntity entity) {
                String showText = "";//platform.toString();
                if (eCode == StatusCode.ST_CODE_SUCCESSED) {
                    showText += "分享成功";
                } else {
                    showText += "分享失败";
                }
               Toast.makeText(context, showText,Toast.LENGTH_LONG).show();
            }
        });
    }
	
}

最后,调用

                        String mShareTitle = "XXXXAPP"; 
			String url ="http://XXXXXXXXX" ;
			String mShareContent = "分享内容"; 
			UMImage umImage = new UMImage(context, R.drawable.ic_launcher); 
			ShareUtil.alertDialog(context, mShareTitle, mShareContent, umImage, url);












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值