-
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
publicclassUmengShare {privateActivity activity =null;privateUMSocialService mController =null;privateDialog shareDialog =null;privateBitmap bitmapCode =null;publicUmengShare(Activity activity){this.activity = activity;}publicvoidshowShareUI(String shareContent){// 首先在您的Activity中添加如下成员变量mController = UMServiceFactory.getUMSocialService("com.umeng.share",RequestType.SOCIAL);// 设置分享内容if(TextUtils.isEmpty(shareContent))mController.setShareContent("体验最新应用");elsemController.setShareContent(shareContent);try{// bitmapCode = EncodingHandler.createQRCode(Const.URL.URL_SERVER_NEW, 200);}catch(WriterException e) {bitmapCode =null;}addWXShare();addFriendCircleShare();//设置新浪SSO handlermController.getConfig().setSsoHandler(newSinaSsoHandler());//设置腾讯微博SSO handlermController.getConfig().setSsoHandler(newTencentWBSsoHandler());mController.getConfig().removePlatform(SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN);mController.getConfig().setPlatformOrder(SHARE_MEDIA.TENCENT,SHARE_MEDIA.WEIXIN,SHARE_MEDIA.SINA,SHARE_MEDIA.WEIXIN_CIRCLE);// mController.openShare(activity, false);shareDialog =newDialog(activity, R.style.Theme_Dialog);shareDialog.setContentView(R.layout.share_popup_layout);shareDialog.setCanceledOnTouchOutside(true);ImageView codeImage = (ImageView)shareDialog.findViewById(R.id.share_imageview);RelativeLayout tencentShare = (RelativeLayout)shareDialog.findViewById(R.id.tencent_layout);RelativeLayout wxShare = (RelativeLayout)shareDialog.findViewById(R.id.wx_share_layout);RelativeLayout sinashare = (RelativeLayout)shareDialog.findViewById(R.id.sina_share_layout);RelativeLayout circleshare = (RelativeLayout)shareDialog.findViewById(R.id.circle_share_layout);ShareOnClickListener listener =newShareOnClickListener();tencentShare.setOnClickListener(listener);wxShare.setOnClickListener(listener);sinashare.setOnClickListener(listener);circleshare.setOnClickListener(listener);if(bitmapCode !=null){codeImage.setImageBitmap(bitmapCode);mController.setShareImage(newUMImage(activity, bitmapCode));}else{codeImage.setBackgroundResource(R.drawable.share_qr_code_image);}shareDialog.show();}/*** 微信*/privatevoidaddWXShare() {// wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppIDString appID ="<span style="font-family: Arial, Helvetica, sans-serif;">wx967daeb35fbeac</span><span style="font-family: Arial, Helvetica, sans-serif;">";</span>// 添加微信平台UMWXHandler wxHandler =newUMWXHandler(activity, appID);wxHandler.addToSocialSDK();//设置微信好友分享内容WeiXinShareContent weixinContent =newWeiXinShareContent();//设置分享文字weixinContent.setShareContent("体验最新应用,边玩边赚钱!马上入驻【星云互动】");//设置titleweixinContent.setTitle("星云互动");//设置分享内容跳转URL//设置分享图片weixinContent.setShareImage(newUMImage(activity, bitmapCode));mController.setShareMedia(weixinContent);}/*** 微信朋友圈*/privatevoidaddFriendCircleShare() {String appID ="wx06c10cd07a5ac0e9";// 支持微信朋友圈UMWXHandler wxCircleHandler =newUMWXHandler(activity, appID);wxCircleHandler.setToCircle(true);wxCircleHandler.addToSocialSDK();//设置微信好友分享内容CircleShareContent circleMedia =newCircleShareContent ();//设置分享文字circleMedia.setShareContent("体验最新应用,边玩边赚钱!马上入驻【星云互动】");//设置titlecircleMedia.setTitle("星云互动");//设置分享内容跳转URL//设置分享图片circleMedia.setShareImage(newUMImage(activity, bitmapCode));mController.setShareMedia(circleMedia );}/*** 分享* @param shareType*/privatevoidshareClick(SHARE_MEDIA shareType){mController.postShare(activity, shareType,newSnsPostListener() {@OverridepublicvoidonStart() {ToastUtils.showTextToast(activity,"开始分享.");}@OverridepublicvoidonComplete(SHARE_MEDIA arg0,inteCode, SocializeEntity arg2) {if(bitmapCode !=null){bitmapCode.recycle();bitmapCode =null;}if(eCode ==200) {ToastUtils.showTextToast(activity,"分享成功.");}/*else {String eMsg = "";if (eCode == -101){eMsg = "没有授权";}ToastUtils.showTextToast(activity, "分享失败[" + eCode + "] " + eMsg);}*/}});}//分享按钮点击事件protectedclassShareOnClickListenerimplementsOnClickListener{@OverridepublicvoidonClick(View v) {if(shareDialog !=null&& shareDialog.isShowing()){shareDialog.dismiss();}switch(v.getId()) {caseR.id.tencent_layout:shareClick(SHARE_MEDIA.TENCENT);break;caseR.id.wx_share_layout:shareClick(SHARE_MEDIA.WEIXIN);break;caseR.id.sina_share_layout:shareClick(SHARE_MEDIA.SINA);break;caseR.id.circle_share_layout:shareClick(SHARE_MEDIA.WEIXIN_CIRCLE);break;}}}}2、自定义布局
3、生成二维码图片123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166xpublicclassUmengShare {privateActivity activity =null;privateUMSocialService mController =null;privateDialog shareDialog =null;privateBitmap bitmapCode =null;publicUmengShare(Activity activity){this.activity = activity;}publicvoidshowShareUI(String shareContent){// 首先在您的Activity中添加如下成员变量mController = UMServiceFactory.getUMSocialService("com.umeng.share",RequestType.SOCIAL);// 设置分享内容if(TextUtils.isEmpty(shareContent))mController.setShareContent("体验最新应用");elsemController.setShareContent(shareContent);try{// bitmapCode = EncodingHandler.createQRCode(Const.URL.URL_SERVER_NEW, 200);}catch(WriterException e) {bitmapCode =null;}addWXShare();addFriendCircleShare();//设置新浪SSO handlermController.getConfig().setSsoHandler(newSinaSsoHandler());//设置腾讯微博SSO handlermController.getConfig().setSsoHandler(newTencentWBSsoHandler());mController.getConfig().removePlatform(SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN);mController.getConfig().setPlatformOrder(SHARE_MEDIA.TENCENT,SHARE_MEDIA.WEIXIN,SHARE_MEDIA.SINA,SHARE_MEDIA.WEIXIN_CIRCLE);// mController.openShare(activity, false);shareDialog =newDialog(activity, R.style.Theme_Dialog);shareDialog.setContentView(R.layout.share_popup_layout);shareDialog.setCanceledOnTouchOutside(true);ImageView codeImage = (ImageView)shareDialog.findViewById(R.id.share_imageview);RelativeLayout tencentShare = (RelativeLayout)shareDialog.findViewById(R.id.tencent_layout);RelativeLayout wxShare = (RelativeLayout)shareDialog.findViewById(R.id.wx_share_layout);RelativeLayout sinashare = (RelativeLayout)shareDialog.findViewById(R.id.sina_share_layout);RelativeLayout circleshare = (RelativeLayout)shareDialog.findViewById(R.id.circle_share_layout);ShareOnClickListener listener =newShareOnClickListener();tencentShare.setOnClickListener(listener);wxShare.setOnClickListener(listener);sinashare.setOnClickListener(listener);circleshare.setOnClickListener(listener);if(bitmapCode !=null){codeImage.setImageBitmap(bitmapCode);mController.setShareImage(newUMImage(activity, bitmapCode));}else{codeImage.setBackgroundResource(R.drawable.share_qr_code_image);}shareDialog.show();}/*** 微信*/privatevoidaddWXShare() {// wx967daebe835fbeac是你在微信开发平台注册应用的AppID, 这里需要替换成你注册的AppIDString appID ="<span style="font-family: Arial, Helvetica, sans-serif;">wx967daeb35fbeac</span><span style="font-family: Arial, Helvetica, sans-serif;">";</span>// 添加微信平台UMWXHandler wxHandler =newUMWXHandler(activity, appID);wxHandler.addToSocialSDK();//设置微信好友分享内容WeiXinShareContent weixinContent =newWeiXinShareContent();//设置分享文字weixinContent.setShareContent("体验最新应用,边玩边赚钱!马上入驻【星云互动】");//设置titleweixinContent.setTitle("星云互动");//设置分享内容跳转URL//设置分享图片weixinContent.setShareImage(newUMImage(activity, bitmapCode));mController.setShareMedia(weixinContent);}/*** 微信朋友圈*/privatevoidaddFriendCircleShare() {String appID ="wx06c10cd07a5ac0e9";// 支持微信朋友圈UMWXHandler wxCircleHandler =newUMWXHandler(activity, appID);wxCircleHandler.setToCircle(true);wxCircleHandler.addToSocialSDK();//设置微信好友分享内容CircleShareContent circleMedia =newCircleShareContent ();//设置分享文字circleMedia.setShareContent("体验最新应用,边玩边赚钱!马上入驻【星云互动】");//设置titlecircleMedia.setTitle("星云互动");//设置分享内容跳转URL//设置分享图片circleMedia.setShareImage(newUMImage(activity, bitmapCode));mController.setShareMedia(circleMedia );}/*** 分享* @param shareType*/privatevoidshareClick(SHARE_MEDIA shareType){mController.postShare(activity, shareType,newSnsPostListener() {@OverridepublicvoidonStart() {ToastUtils.showTextToast(activity,"开始分享.");}@OverridepublicvoidonComplete(SHARE_MEDIA arg0,inteCode, SocializeEntity arg2) {if(bitmapCode !=null){bitmapCode.recycle();bitmapCode =null;}if(eCode ==200) {ToastUtils.showTextToast(activity,"分享成功.");}/*else {String eMsg = "";if (eCode == -101){eMsg = "没有授权";}ToastUtils.showTextToast(activity, "分享失败[" + eCode + "] " + eMsg);}*/}});}//分享按钮点击事件protectedclassShareOnClickListenerimplementsOnClickListener{@OverridepublicvoidonClick(View v) {if(shareDialog !=null&& shareDialog.isShowing()){shareDialog.dismiss();}switch(v.getId()) {caseR.id.tencent_layout:shareClick(SHARE_MEDIA.TENCENT);break;caseR.id.wx_share_layout:shareClick(SHARE_MEDIA.WEIXIN);break;caseR.id.sina_share_layout:shareClick(SHARE_MEDIA.SINA);break;caseR.id.circle_share_layout:shareClick(SHARE_MEDIA.WEIXIN_CIRCLE);break;}}}}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108publicfinalclassEncodingHandler {privatestaticfinalintBLACK =0xff000000;privatestaticfinalintWHITE =0xffffffff;publicstaticBitmap createQRCode(String str,intwidthAndHeight)throwsWriterException {Hashtable<EncodeHintType, String> hints =newHashtable<EncodeHintType, String>();hints.put(EncodeHintType.CHARACTER_SET,"utf-8");BitMatrix matrix =newMultiFormatWriter().encode(str,BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight);intwidth = matrix.getWidth();intheight = matrix.getHeight();int[] pixels =newint[width * height];for(inty =0; y < height; y++) {for(intx =0; x < width; x++) {if(matrix.get(x, y)) {pixels[y * width + x] = BLACK;}else{// 无信息设置像素点为白色pixels[y * width + x] = WHITE;}}}Bitmap bitmap = Bitmap.createBitmap(width, height,Bitmap.Config.ARGB_8888);bitmap.setPixels(pixels,0, width,0,0, width, height);returnbitmap;}publicstaticBitmap createQRCodeWithLogo(Context context, String str,intwidthAndHeight)throwsWriterException {QRCodeWriter writer =newQRCodeWriter();Hashtable<EncodeHintType, String> hints =newHashtable<EncodeHintType, String>();hints.put(EncodeHintType.CHARACTER_SET,"utf-8");BitMatrix bitMatrix =newQRCodeWriter().encode(str,BarcodeFormat.QR_CODE, widthAndHeight, widthAndHeight, hints);int[] pixels =newint[widthAndHeight * widthAndHeight];Bitmap[] bitmaps =newBitmap[2];bitmaps[1] = BitmapFactory.decodeResource(context.getResources(),R.drawable.qrcode_logo);// logo图标intimageW = bitmaps[1].getWidth();intimageH = bitmaps[1].getHeight();intstartW = widthAndHeight /2- imageW /2;intstarH = widthAndHeight /2- imageH /2;for(inty =0; y < widthAndHeight; y++) {for(intx =0; x < widthAndHeight; x++) {if((x <= startW || x >= starH + imageW)|| (y <= starH || y >= +imageH)) {if(bitMatrix.get(x, y)) {pixels[y * widthAndHeight + x] = BLACK;}}else{}}}Bitmap bitmap = Bitmap.createBitmap(widthAndHeight, widthAndHeight,Bitmap.Config.ARGB_8888);bitmap.setPixels(pixels,0, widthAndHeight,0,0, widthAndHeight, widthAndHeight);bitmaps[0] = bitmap;Bitmap bm = combineBitmaps(bitmaps, startW, starH);returnbm;}privatestaticBitmap combineBitmaps(Bitmap[] bitmaps,intw,inth) {// 添加logoBitmap newBitmap = Bitmap.createBitmap(bitmaps[0].getWidth(),bitmaps[0].getHeight(), Config.ARGB_8888);Canvas cv =newCanvas(newBitmap);for(inti =0; i < bitmaps.length; i++) {if(i ==0) {cv.drawBitmap(bitmaps[0],0,0,null);}else{cv.drawBitmap(bitmaps[i], w, h,null);}cv.save(Canvas.ALL_SAVE_FLAG);cv.restore();}returnnewBitmap;}publicstaticBitmap gerateLogoCode(Context context, String str,intwidthAndHeight)throwsWriterException{if(!TextUtils.isEmpty(str)){//根据字符串生成二维码图片并显示在界面上,第二个参数为图片的大小(600*600)Bitmap qrCodeBitmap = createQRCode(str, widthAndHeight);//------------------添加logo部分------------------//Bitmap logoBmp = BitmapFactory.decodeResource(context.getResources(), R.drawable.qrcode_logo);//二维码和logo合并Bitmap bitmap = Bitmap.createBitmap(qrCodeBitmap.getWidth(), qrCodeBitmap.getHeight(), qrCodeBitmap.getConfig());Canvas canvas =newCanvas(bitmap);//二维码canvas.drawBitmap(qrCodeBitmap,0,0,null);//logo绘制在二维码中央canvas.drawBitmap(logoBmp, qrCodeBitmap.getWidth() /2- logoBmp.getWidth() /2, qrCodeBitmap.getHeight()/2- logoBmp.getHeight() /2,null);returnbitmap;}returnnull;}}
4、微信自定义分享回调
123456789101112131415161718192021222324publicclassWXEntryActivityextendsWXCallbackActivity{@OverrideprotectedvoidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}//微信发送的请求将回调到onReq方法@OverridepublicvoidonReq(BaseReq req) {super.onReq(req);// ToastUtils.showTextToast(this, "WXEntryActivity onReq");System.out.println("WXEntryActivity onReq");}//发送到微信请求的响应结果将回调到onResp方法@OverridepublicvoidonResp(BaseResp resp) {super.onResp(resp);// ToastUtils.showTextToast(this, "WXEntryActivity onResp");System.out.println("WXEntryActivity onResp");}}