Android开发 分享功能的使用与设计
来源:互联网 发布:免费的远程控制软件 编辑:程序博客网 时间:2024/04/28 23:53
public class DialogShare extends Dialog implements android.view.View.OnClickListener{
private Context context;
private PlatformActionListener platformActionListener;
private Platform.ShareParams shareParams;
private int[] ids={R.id.ly_wechat,R.id.ly_wechat_friend,R.id.ly_qq,R.id.ly_qzone};
public DialogShare(Context context){
this(context, R.style.Theme_Dialog_From_Bottom);
}
public DialogShare(Context context,int theme){
super(context,theme);
this.context=context;
init();
initValues();
}
public PlatformActionListener getPlatFormActionListener(){
return platformActionListener;
}
public void setPlatFormActionListener(PlatformActionListener platformActionListener){
this.platformActionListener=platformActionListener;
}
private void init(){
this.setCanceledOnTouchOutside(true);
this.setCancelable(true);
}
private void initValues(){
//获取DialogShare所在的窗口
Window window=this.getWindow();
window.getDecorView().setPadding(0, 0, 0, 0);
//获取当前屏幕的参数
WindowManager.LayoutParams lp=window.getAttributes();
//宽度占满屏幕
lp.width=WindowManager.LayoutParams.MATCH_PARENT;
//高度
lp.height=WindowManager.LayoutParams.WRAP_CONTENT;
//位于底部
lp.gravity=Gravity.BOTTOM;
window.setAttributes(lp);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.pop_share);
initView();
}
private void initView(){
for(int rid:ids){
this.findViewById(rid).setOnClickListener(this);
}
}
private class ShareItemClickListener implements OnItemClickListener{
private DialogShare dialogShare;
public ShareItemClickListener(DialogShare dialogShare){
this.dialogShare=dialogShare;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
share(position);
dialogShare.dismiss();
}
}
private void share(int position){
if (position==2) {
qqFriend();
}else if(position==3){
//Q空间
qqZone();
}else {
Platform plat=null;
plat=ShareSDK.getPlatform(context,getPlatform(position));
if(platformActionListener!=null){
plat.setPlatformActionListener(platformActionListener);
}
plat.share(shareParams);
}
}
/**
* 获取平台
*/
private String getPlatform(int vid){
String platform="";
switch (vid) {
case R.id.ly_wechat:
platform="WeChat";
break;
case R.id.ly_wechat_friend:
platform="WeChatMoments";
break;
case R.id.ly_qq:
platform="QQ";
break;
case R.id.ly_qzone:
platform="QZone";
break;
default:
break;
}
return platform;
}
/**
* 初始化分享内容参数
* @param shareModel
*/
public void initShareParams(BeanShareData shareModel){
if (shareModel!=null) {
Platform.ShareParams sp=new Platform.ShareParams();
sp.setShareType(Platform.SHARE_TEXT);
sp.setShareType(Platform.SHARE_WEBPAGE);
sp.setTitle(shareModel.getTitle());//设置分享标题
sp.setText(shareModel.getText());
if (!TextUtils.isEmpty(shareModel.getImageUrl())) {
sp.setImageUrl(shareModel.getImageUrl());
}
sp.setUrl(shareModel.getUrl());
if (!TextUtils.isEmpty(shareModel.getImagePath())) {
sp.setImagePath(shareModel.getImagePath());
}
shareParams=sp;
}
}
public void initShareParams_in(BeanShareData shareModel){
if (shareModel!=null) {
Platform.ShareParams sp=new Platform.ShareParams();
sp.setShareType(Platform.SHARE_TEXT);
sp.setShareType(Platform.SHARE_WEBPAGE);
sp.setTitle(shareModel.getTitle());//设置分享标题
sp.setText(shareModel.getText());
sp.setUrl(shareModel.getUrl());
sp.setImageUrl(shareModel.getImageUrl());
shareParams=sp;
}
}
/**
* 分享到QQ好友
*/
private void qqFriend(){
Platform.ShareParams sp=new Platform.ShareParams();
sp.setTitle(shareParams.getTitle());
sp.setTitleUrl(shareParams.getUrl());//标题的超链接
sp.setText(shareParams.getText());
if (!TextUtils.isEmpty(shareParams.getImageUrl())) {
sp.setImageUrl(shareParams.getImageUrl());
}
if (!TextUtils.isEmpty(shareParams.getImagePath())) {
sp.setImagePath(shareParams.getImagePath());
}
sp.setComment(context.getString(R.string.saysomething));
sp.setSite(shareParams.getTitle());
sp.setSiteUrl(shareParams.getUrl());
Platform qq=ShareSDK.getPlatform(context,"QQ");
qq.setPlatformActionListener(platformActionListener);
qq.share(sp);
}
/**
* 分享到QQ空间
*/
private void qqZone(){
Platform.ShareParams sp=new Platform.ShareParams();
sp.setTitle(shareParams.getTitle());
sp.setTitleUrl(shareParams.getUrl());//标题的超链接
sp.setText(shareParams.getText());
if (!TextUtils.isEmpty(shareParams.getImageUrl())) {
sp.setImageUrl(shareParams.getImageUrl());
}
if (!TextUtils.isEmpty(shareParams.getImagePath())) {
sp.setImagePath(shareParams.getImagePath());
}
sp.setComment(context.getString(R.string.saysomething));
sp.setSite(shareParams.getTitle());
sp.setSiteUrl(shareParams.getUrl());
Platform qZone=ShareSDK.getPlatform(context,"QZone");
//设置分享时间回调
qZone.setPlatformActionListener(platformActionListener);
qZone.share(sp);
}
@Override
public void onClick(View v) {
ShareSDK.initSDK(context);
dismiss();
switch (v.getId()) {
case R.id.ly_qq:
qqFriend();
break;
//QQ空间
case R.id.ly_qzone:
qqZone();
break;
//微信
case R.id.ly_wechat:
break;
case R.id.ly_wechat_friend:
Platform plat=null;
plat=ShareSDK.getPlatform(context,getPlatform(v.getId()));
if (plat!=null&&platformActionListener!=null) {
plat.setPlatformActionListener(platformActionListener);;
}
plat.share(shareParams);
break;
default:
break;
}
}
}
<?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="wrap_content"
android:gravity="bottom"
android:id="@+id/ll_share"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="分享"
android:textColor="@color/orange"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!-- 微信 -->
<LinearLayout
android:id="@+id/ly_wechat"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/iconfontweixing"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:text="微信"
android:textColor="@color/black"/>
</LinearLayout>
<!-- 朋友圈 -->
<LinearLayout
android:id="@+id/ly_wechat_friend"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/iconfontzhangshangcaifuyemianshoujiban344"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:text="朋友圈"
android:textColor="@color/black"/>
</LinearLayout>
<!-- QQ -->
<LinearLayout
android:id="@+id/ly_qq"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/iconfontqql"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:text="QQ"
android:textColor="@color/black"/>
</LinearLayout>
<!-- QQ空间 -->
<LinearLayout
android:id="@+id/ly_qzone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/iconfontqqkongjian"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:text="QQ空间"
android:textColor="@color/black"/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
</LinearLayout>
- Android开发 分享功能的使用与设计
- android分享功能开发!!!
- android 分享功能开发
- android分享功能开发
- android 使用分享功能
- Android使用分享功能
- Android中分享功能的使用
- Android开发之ActionBar结合Fragment的导航功能的使用(源代码分享)
- Android 记录一次开发微信分享功能的吐槽与思考
- Android开发之使用SharedPreferences实现QQ登陆的选项框记忆功能(源代码分享)
- Android开发,透明指示层、引导层、功能说明层的分享及使用
- android 分享功能,实现分享的程序与进行分享信息的代码
- Android开发学习之分享功能的实现
- Android 开发微信分享功能遇到的问题
- android开发中调用系统中分享功能的方法
- 【Android UI设计与开发】之详解ActionBar的使用
- Android分享功能的实现(shared SDK的使用)
- Android Market 链接的生成与分享 评价功能
- ORA-01157:无法标识/锁定数据文件,ORA-01110:表空间丢失错误
- 在一个会话中产生多个连接
- HDU - CA Loves GCD
- App Resources and Resources Overview
- LeetCode OJ刷题历程——Add Digits
- Android开发 分享功能的使用与设计
- LeetCode 之 5 ---- Longest Palindromic Substring
- 自定义Toast
- JavaScript之变量与常量
- 【BZOJ1588】【HNOI2002】营业额统计
- 文件的切割与合并
- Linux系统创建一个新的进程
- 内核分析-第六周
- 设计模式之设计原则-单一职责原则