集成步奏看官网介绍 下面是集成demo
源码:http://download.csdn.net/detail/lm_zp/9594675
这里讲自定义每个分享的监听
/**
* 分享界面
* SharedActivity.java
* Car273
*
* Created by
* Copyright (c) 1998-2014 273.cn. All rights reserved.
*/
package com.car273.activity;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler.Callback;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.Platform.ShareParams;
import cn.sharesdk.framework.PlatformActionListener;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.framework.utils.UIHandler;
import cn.sharesdk.sina.weibo.SinaWeibo;
import cn.sharesdk.system.text.ShortMessage;
import cn.sharesdk.tencent.qq.QQ;
import cn.sharesdk.tencent.qzone.QZone;
import cn.sharesdk.wechat.friends.Wechat;
import cn.sharesdk.wechat.moments.WechatMoments;
public class SharedActivity extends Activity implements OnClickListener,
PlatformActionListener, Callback {
/** 退出分享按钮 */
private Button share_cancel;
/** 分享到朋友圈按钮 */
private LinearLayout share_circleFriend;
/** 分享到微信好友按钮 */
private LinearLayout share_wxFriend;
/** 分享到QQ空间按钮 */
private LinearLayout share_qzone;
/** 分享到QQ好友按钮 */
private LinearLayout share_qqFriend;
/** 分享到短信按钮 */
private LinearLayout share_shortMessage;
/** 分享到新浪微博按钮 */
private LinearLayout share_sinaWeibo;
/** 分享按钮的布局 */
private LinearLayout linearLayout_allShareButton;
/** 分享的标题部分 */
private String share_title;
/** 分享的文字内容部分 */
private String share_text;
/** 分享的图片部分 */
private String share_image;
/** 分享的网址部分 */
private String share_url;
/** 分享数据的集合体 */
private HashMap<String, Object> map;
/** 分享图片数据 */
private Drawable drawable = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.share_item_dialog);
// 组件初始化
initView();
// 数据初始化
initData();
// 组件添加监听
initAddOnClickListener();
}
/**
* 定义一个函数将dp转换为像素
* @param context
* @param dp
* @return
*/
public int Dp2Px(float dp) {
final float scale = getResources().getDisplayMetrics().density;
return (int) (dp * scale / 2);
}
/**
* @数据初始化
*/
private void initData() {
// 初始化sdk分享资源
ShareSDK.initSDK(this);
// 初始化要属相的内容
share_title = "度娘好深的沟";
share_text = "度娘在哪里,请点击这里好么?";
share_image = "http://www.cctime.com/upLoadFile/2012/1/18/2012118101653355.jpg";
share_url = "http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&ipn=d&cl=2&cm=1&sc=0&lm=-1&fr=ala2&pn=0&rn=1&di=0&ln=24&word=%B6%C8%C4%EF&objurl=http%3A%2F%2Fimage1%2Enbd%2Ecom%2Ecn%2Fuploads%2Farticles%2Fthumbnails%2F4454%2FQQ%5F%5F%5F%5F%5F%5F20120110102334%2Ex%5Flarge%2Ejpg#pn1&-1&di0&objURLhttp%3A%2F%2Fwww.cctime.com%2FupLoadFile%2F2012%2F1%2F18%2F2012118101653355.jpg&fromURLippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3Bvvpt4j_z%26e3Bv54AzdH3Fip4sAzdH3Fda8d-8-8bAzdH3Fda8d88b8a8mc0dbb8_z%26e3Bip4&W400&H600&T0&S84&TPjpg";
map = new HashMap<String, Object>();
}
/**
* @组件初始化
*/
private void initView() {
share_cancel = (Button) findViewById(R.id.share_cancel);
share_cancel = (Button) findViewById(R.id.share_cancel);
share_circleFriend = (LinearLayout) findViewById(R.id.linearLayout_ciclefriend);
share_qqFriend = (LinearLayout) findViewById(R.id.LinearLayout_qqfriend);
share_qzone = (LinearLayout) findViewById(R.id.linearLayout_qzone);
share_shortMessage = (LinearLayout) findViewById(R.id.LinearLayout_shortmessage);
share_sinaWeibo = (LinearLayout) findViewById(R.id.LinearLayout_sinaweibo);
share_wxFriend = (LinearLayout) findViewById(R.id.linearLayout_weixin);
linearLayout_allShareButton = (LinearLayout) findViewById(R.id.LinearLayout_allShareButton);
}
/**
* @组件添加监听
*/
private void initAddOnClickListener() {
share_cancel.setOnClickListener(this);
share_circleFriend.setOnClickListener(this);
share_qqFriend.setOnClickListener(this);
share_qzone.setOnClickListener(this);
share_shortMessage.setOnClickListener(this);
share_sinaWeibo.setOnClickListener(this);
share_wxFriend.setOnClickListener(this);
}
/*
* (non-Javadoc)
*
* @see android.view.View.OnClickListener#onClick(android.view.View)
*/
@Override
public void onClick(View v) {
// 清空之前可能存在的分项数据
if (map.size() != 0) {
map.clear();
}
switch (v.getId()) {
// 取消
case R.id.share_cancel:
SharedActivity.this.finish();
break;
// 分享到微信朋友圈
case R.id.linearLayout_ciclefriend:
share_CircleFriend();
break;
// 分享到QQ空间
case R.id.linearLayout_qzone:
share_Qzone();
break;
// 分享到微信好友
case R.id.linearLayout_weixin:
share_WxFriend();
break;
// 分享到QQ好友
case R.id.LinearLayout_qqfriend:
share_QQFriend();
break;
// 分享到短信
case R.id.LinearLayout_shortmessage:
share_ShortMessage();
break;
// 分享到新浪微博
case R.id.LinearLayout_sinaweibo:
share_SinaWeibo();
break;
default:
break;
}
}
/**
* 分享到朋友圈
*/
private void share_CircleFriend() {
Platform circle = ShareSDK.getPlatform(this, WechatMoments.NAME);
if (!circle.isValid()) {
InfoMessage.showMessage(this, "分享失败,请先安装微信");
return;
}
map.put("AppId", ShareConfig.APPID_CIRCLE_FRIEND);
map.put("AppSecret", ShareConfig.APPSECRET_CIRCLE_FRIEND);
map.put("Enable", ShareConfig.ENABLE_CIRCLE_FRIEND);
map.put("BypassApproval", ShareConfig.BYPASSAPPROVAL_CIRCLE_FRIEND);
ShareSDK.setPlatformDevInfo(WechatMoments.NAME, map);
ShareSDK.initSDK(this, ShareConfig.APPKEY);
cn.sharesdk.wechat.moments.WechatMoments.ShareParams sp = new cn.sharesdk.wechat.moments.WechatMoments.ShareParams();
sp.setShareType(Platform.SHARE_WEBPAGE);// 一定要设置分享属性
sp.setTitle(share_title);
sp.setText(share_text);
sp.setImageData(null);
sp.setImageUrl(share_image);
sp.setImagePath("");
sp.setUrl(share_url);
circle.setPlatformActionListener(this); // 设置分享事件回调
// 执行图文分享
circle.share(sp);
}
/**
* 分享到微信好友
*/
private void share_WxFriend() {
Platform circle = ShareSDK.getPlatform(this, Wechat.NAME);
if (!circle.isValid()) {
InfoMessage.showMessage(this, "分享失败,请先安装微信");
return;
}
map.put("AppId", ShareConfig.APPID_WXFRIEND);
map.put("Enable", ShareConfig.ENABLE_WXFRIEND);
map.put("BypassApproval", ShareConfig.BYPASSAPPROVAL_WXFRIEND);
ShareSDK.setPlatformDevInfo(Wechat.NAME, map);
ShareSDK.initSDK(this, ShareConfig.APPKEY);
ShareParams sp = new ShareParams();
sp.setShareType(Platform.SHARE_WEBPAGE);// 一定要设置分享属性
sp.setTitle(share_title);
sp.setText(share_text);
sp.setImageData(null);
sp.setImageUrl(share_image);
sp.setImagePath("");
sp.setUrl(share_url);
circle.setPlatformActionListener(this); // 设置分享事件回调
// 执行图文分享
circle.share(sp);
}
/**
* 分享到QQ空间
*/
private void share_Qzone() {
map.put("AppId", ShareConfig.APPID_QZONE);
map.put("AppKey", ShareConfig.APPKEY_QZONE);
map.put("ShareByAppClient", ShareConfig.SHAREBYAPPCLIENT_QZONE);
map.put("Enable", ShareConfig.ENABLE_QZONE);
map.put("BypassApproval", ShareConfig.BYPASSAPPROVAL_QZONE);
ShareSDK.setPlatformDevInfo(QZone.NAME, map);
ShareSDK.initSDK(this, ShareConfig.APPKEY);
cn.sharesdk.tencent.qzone.QZone.ShareParams sp = new cn.sharesdk.tencent.qzone.QZone.ShareParams();
sp.setShareType(Platform.SHARE_WEBPAGE);// 一定要设置分享属性
sp.setTitle(share_title);
sp.setText(share_text);
sp.setTitleUrl(share_url);
sp.setImageUrl(share_image);
sp.setImagePath("");
sp.setSite("273业管");
sp.setSite("273业管");
Platform qzone = ShareSDK.getPlatform(this, QZone.NAME);
qzone.setPlatformActionListener(this); // 设置分享事件回调
// 执行图文分享
qzone.share(sp);
}
/**
* 分享到QQ好友
*/
private void share_QQFriend() {
Platform circle = ShareSDK.getPlatform(this, QQ.NAME);
if (!circle.isValid()) {
InfoMessage.showMessage(this, "分享失败,请先安装QQ");
return;
}
map.put("AppId", ShareConfig.APPID_QQFRIEND);
map.put("AppKey", ShareConfig.APPKEY_QQFRIEND);
map.put("Enable", ShareConfig.ENABLE_QQFRIEND);
ShareSDK.setPlatformDevInfo(QQ.NAME, map);
ShareSDK.initSDK(this, ShareConfig.APPKEY);
cn.sharesdk.tencent.qq.QQ.ShareParams sp = new cn.sharesdk.tencent.qq.QQ.ShareParams();
sp.setShareType(Platform.SHARE_WEBPAGE);// 一定要设置分享属性
sp.setTitle(share_title);
sp.setTitleUrl(share_url);
sp.setText(share_text);
sp.setImageUrl(share_url);
sp.setImagePath("");
circle.setPlatformActionListener(this); // 设置分享事件回调
// 执行图文分享
circle.share(sp);
}
/**
* 分享到短信
*/
private void share_ShortMessage() {
ShareSDK.setPlatformDevInfo(ShortMessage.NAME, map);
ShareSDK.initSDK(this, ShareConfig.APPKEY);
cn.sharesdk.system.text.ShortMessage.ShareParams sp = new cn.sharesdk.system.text.ShortMessage.ShareParams();
sp.setAddress("");
sp.setText(share_text + share_url);
Platform circle = ShareSDK.getPlatform(this, ShortMessage.NAME);
circle.setPlatformActionListener(this); // 设置分享事件回调
// 执行图文分享
circle.share(sp);
}
/**
* 分享到新浪微博
*/
private void share_SinaWeibo() {
map.put("AppKey", ShareConfig.APPKEY_SINA_WEIBO);
map.put("AppSecret", ShareConfig.APPSECRET_SINA_WEIBO);
map.put("RedirectUrl", ShareConfig.REDIRECTURL_SINA_WEIBO);
map.put("ShareByAppClient", ShareConfig.SHAREBYAPPCLIENT_SINA_WEIBO);
map.put("Enable", ShareConfig.ENABLE_SINA_WEIBO);
ShareSDK.setPlatformDevInfo(SinaWeibo.NAME, map);
ShareSDK.initSDK(this, ShareConfig.APPKEY);
cn.sharesdk.sina.weibo.SinaWeibo.ShareParams sp = new cn.sharesdk.sina.weibo.SinaWeibo.ShareParams();
sp.setShareType(Platform.SHARE_WEBPAGE);// 一定要设置分享属性
sp.setText(share_text + share_url);
sp.setImageUrl(share_image);
sp.setImagePath("");
Platform weibo = ShareSDK.getPlatform(this, SinaWeibo.NAME);
weibo.setPlatformActionListener(this); // 设置分享事件回调
// 执行图文分享
weibo.share(sp);
}
/*
* (non-Javadoc)
*
* @see android.app.Activity#onDestroy()
*/
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
// 取消分享菜单的统计
ShareSDK.logDemoEvent(2, null);
// 释放资源空间
ShareSDK.stopSDK(this);
super.onDestroy();
}
public void onComplete(Platform plat, int action,
HashMap<String, Object> res) {
Message msg = new Message();
msg.arg1 = 1;
msg.arg2 = action;
msg.obj = plat;
UIHandler.sendMessage(msg, this);
}
public void onCancel(Platform palt, int action) {
Message msg = new Message();
msg.arg1 = 3;
msg.arg2 = action;
msg.obj = palt;
UIHandler.sendMessage(msg, this);
}
public void onError(Platform palt, int action, Throwable t) {
t.printStackTrace();
Message msg = new Message();
msg.arg1 = 2;
msg.arg2 = action;
UIHandler.sendMessage(msg, this);
}
public boolean handleMessage(Message msg) {
String text = actionToString(msg.arg2);
switch (msg.arg1) {
case 1:
// 成功
text = "分享成功";
InfoMessage.showMessage(this, text);
SharedActivity.this.finish();
break;
case 2:
// 失败
text = "分享失败";
break;
case 3:
// 取消
text = "分享已取消";
break;
}
InfoMessage.showMessage(this, text);
return false;
}
/** 将action转换为String */
public static String actionToString(int action) {
switch (action) {
case Platform.ACTION_AUTHORIZING:
return "ACTION_AUTHORIZING";
case Platform.ACTION_GETTING_FRIEND_LIST:
return "ACTION_GETTING_FRIEND_LIST";
case Platform.ACTION_FOLLOWING_USER:
return "ACTION_FOLLOWING_USER";
case Platform.ACTION_SENDING_DIRECT_MESSAGE:
return "ACTION_SENDING_DIRECT_MESSAGE";
case Platform.ACTION_TIMELINE:
return "ACTION_TIMELINE";
case Platform.ACTION_USER_INFOR:
return "ACTION_USER_INFOR";
case Platform.ACTION_SHARE:
return "ACTION_SHARE";
default: {
return "UNKNOWN";
}
}
}
/**
* 从服务器取图片
*
* @param url
* @return
*/
public static Drawable getHttpDrawable(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setConnectTimeout(0);
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return new BitmapDrawable(bitmap);
}
}