封装好的popupwiindow效能类分享到微信好友、朋友圈、qq好友、qq空间
封装好的popupwiindow功能类分享到微信好友、朋友圈、qq好友、qq空间
PopWindow.class
MainActivity.class去调用
先说下用法:
1、在Tapplication中的wxid(在微信开放平台申请的应用id)与tencentId(在qq开放平台申请的应用id)换成自己的申请的id,将本demo换成自己申请应用的包名。本demo在微信和qq开放平台已经申请好了应用,可以直接使用
2、在清单文件中,AuthActivity里的scheme="xxxx"的数字换成自己的tencentId。
3、popupwiindow是封装好的分享的类,这里面可以写自己想分享的内容(具体想分享什么,可以参考官方文档),以及popupwindow的布局也可以自己设置。
4、在popupwiindow用法,只需在某个avitivity中new popupwiindow(Cotnext,ViewGroup)即可,ViewGroup是指的acitivty的主布局也就是setContentView里的布局
大体说完 直接上demo代码
微信开放平台与qq开放平台提供的sdk在demo的libs里 下载地址
http://download.****.net/detail/u012303938/8943141
TappLication.class
public class Tapplication extends Application{ public static Tencent tencent;//QQ public static IWXAPI iwxapi;//微信 private String tencentId="1104715261"; private String WXID="wx0af4dd6f61b6df32"; @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); tencent=Tencent.createInstance(tencentId, this.getApplicationContext()); iwxapi= WXAPIFactory.createWXAPI(this, WXID, true); iwxapi.registerApp(WXID); }
PopWindow.class
public class PopWindow implements View.OnClickListener{ PopupWindow popupWindow; View view; Context context; private ImageButton ib_qq,ib_qzone,ib_weiquan,ib_weixin; public PopWindow(Context context,ViewGroup laytout) { view =View.inflate(context, R.layout.window,null); this.context=context; WindowManager windowManager=(WindowManager)context.getSystemService(Context.WINDOW_SERVICE); int height=windowManager.getDefaultDisplay().getHeight(); height=height/3; popupWindow=new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, height); popupWindow.setBackgroundDrawable(new BitmapDrawable()); popupWindow.setOutsideTouchable(true); popupWindow.showAtLocation(laytout, Gravity.BOTTOM, 0, 0); ib_qq=(ImageButton)view.findViewById(R.id.ib_qq); ib_qq.setOnClickListener(this); ib_qzone=(ImageButton)view.findViewById(R.id.ib_qzone); ib_qzone.setOnClickListener(this); ib_weiquan=(ImageButton)view.findViewById(R.id.ib_weiquan); ib_weiquan.setOnClickListener(this); ib_weixin=(ImageButton)view.findViewById(R.id.ib_weixin); ib_weixin.setOnClickListener(this); } public void onDismiss(){ if(popupWindow!=null){ if(popupWindow.isShowing()){ popupWindow.dismiss(); } } } @Override public void onClick(View v) { switch (v.getId()){ //分享到QQ好友 case R.id.ib_qq: final Bundle bundle = new Bundle(); //这条分享消息被好友点击后的跳转URL。 bundle.putString(QQShare.SHARE_TO_QQ_TARGET_URL, "http://connect.qq.com/"); //分享的标题。注:PARAM_TITLE、PARAM_IMAGE_URL、PARAM_ SUMMARY不能全为空,最少必须有一个是有值的。 bundle.putString(QQShare.SHARE_TO_QQ_TITLE, "我在测试"); //分享的图片URL bundle.putString(QQShare.SHARE_TO_QQ_IMAGE_URL, "http://img3.cache.netease.com/photo/0005/2013-03-07/8PBKS8G400BV0005.jpg"); //分享的消息摘要,最长50个字 bundle.putString(QQShare.SHARE_TO_QQ_SUMMARY, "测试"); //手Q客户端顶部,替换“返回”按钮文字,如果为空,用返回代替 bundle.putString(QQShare.SHARE_TO_QQ_APP_NAME, "??我在测试"); //标识该消息的来源应用,值为应用名称+AppId。 ThreadManager.getMainHandler().post(new Runnable() { @Override public void run() { Tapplication.tencent.shareToQQ((Activity) context, bundle, new IUiListener() { @Override public void onComplete(Object o) { Toast.makeText(context, "分享成功", Toast.LENGTH_SHORT).show(); } @Override public void onError(UiError uiError) { } @Override public void onCancel() { Toast.makeText(context, "取消分享", Toast.LENGTH_SHORT).show(); } }); } }); if(popupWindow.isShowing()){ popupWindow.dismiss(); } break; //分享到QQ空间 case R.id.ib_qzone: final Bundle params = new Bundle(); params.putInt(QzoneShare.SHARE_TO_QZONE_KEY_TYPE, QzoneShare.SHARE_TO_QZONE_TYPE_IMAGE_TEXT); params.putString(QzoneShare.SHARE_TO_QQ_TARGET_URL,"http://www.qq.com"); params.putString(QzoneShare.SHARE_TO_QQ_TITLE,"你好"); // params.putString(QzoneShare.SHARE_TO_QQ_IMAGE_URL,"http://img3.cache.netease.com/photo/0005/2013-03-07/8PBKS8G400BV0005.jpg"); ArrayList<String> imageUrls = new ArrayList<String>(); imageUrls.add("http://img3.cache.netease.com/photo/0005/2013-03-07/8PBKS8G400BV0005.jpg"); params.putStringArrayList(QzoneShare.SHARE_TO_QQ_IMAGE_URL, imageUrls); params.putString(QzoneShare.SHARE_TO_QQ_SUMMARY, "测试分享dasdasdasdadadadasdasda"); params.putString(QzoneShare.SHARE_TO_QQ_APP_NAME, "益卡"); ThreadManager.getMainHandler().post(new Runnable() { @Override public void run() { Tapplication.tencent.shareToQzone((Activity)context,params,qZoneShareListener); } }); if(popupWindow.isShowing()){ popupWindow.dismiss(); } break; //分享到微信 case R.id.ib_weixin: WXTextObject textObj = new WXTextObject(); textObj.text="啦啦啦啦德玛西亚"; WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = textObj; msg.description = "详细情况大舒服撒的方法"; SendMessageToWX.Req req=new SendMessageToWX.Req(); req.transaction = String.valueOf(System.currentTimeMillis()); // transaction字段用于唯一标识一个请求 req.message = msg; req.scene=SendMessageToWX.Req.WXSceneSession; Tapplication.iwxapi.sendReq(req); if(popupWindow.isShowing()){ popupWindow.dismiss(); } //分享到朋友圈 case R.id.ib_weiquan: WXTextObject textObj1 = new WXTextObject(); textObj1.text="啦啦啦啦德玛西亚"; WXMediaMessage msg1 = new WXMediaMessage(); msg1.mediaObject = textObj1; msg1.description = "详细情况大舒服撒的方法"; SendMessageToWX.Req req1=new SendMessageToWX.Req(); req1.transaction = String.valueOf(System.currentTimeMillis()); // transaction字段用于唯一标识一个请求 req1.message = msg1; req1.scene=SendMessageToWX.Req.WXSceneTimeline; Tapplication.iwxapi.sendReq(req1); if(popupWindow.isShowing()){ popupWindow.dismiss(); } break; } } IUiListener qZoneShareListener = new IUiListener() { @Override public void onCancel() { Toast.makeText(context,"取消分享",Toast.LENGTH_SHORT).show(); } @Override public void onError(UiError e) { // TODO Auto-generated method stub Toast.makeText(context,e.errorMessage,Toast.LENGTH_SHORT).show(); } @Override public void onComplete(Object response) { // TODO Auto-generated method stub Toast.makeText(context,"分享成功",Toast.LENGTH_SHORT).show(); } }; }
MainActivity.class去调用
public class MainActivity extends ActionBarActivity { private Button btn_qq; private RelativeLayout rl_pop; private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context=this; btn_qq=(Button) findViewById(R.id.btn_qq); rl_pop=(RelativeLayout) findViewById(R.id.rl_pop); btn_qq.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub new PopWindow(context, rl_pop); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。