自訂ShareSDK分享平台介面,sharesdk分享平台

來源:互聯網
上載者:User

自訂ShareSDK分享平台介面,sharesdk分享平台

自訂ShareSDK分享平台介面


運行:



朋友圈分享成功:


註:朋友圈分享有兩種:一種是為繞過審核,即圖中所顯示的方式,一種為不繞過審核,兩種方式在朋友圈中顯示的方式不一樣,且分享時彈出的介面也不一樣。在shareSDK.xml中設定BypassApproval="true",即BypassApproval是繞過審核的標記,設定為true後AppId將被忽略


1.彈出分享提示九宮格類:SharePopupWindow.java

package com.example.sharesdk;import android.content.Context;import android.graphics.drawable.ColorDrawable;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup.LayoutParams;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.Button;import android.widget.GridView;import android.widget.PopupWindow;import cn.sharesdk.framework.Platform;import cn.sharesdk.framework.Platform.ShareParams;import cn.sharesdk.framework.PlatformActionListener;import cn.sharesdk.framework.ShareSDK;/** * TODO<分享工具> * @data: 2014-7-21 下午2:45:38 * @version: V1.0 */public class SharePopupWindow extends PopupWindow {    private Context context;    private PlatformActionListener platformActionListener;    private ShareParams shareParams;    public SharePopupWindow(Context cx) {        this.context = cx;    }    public PlatformActionListener getPlatformActionListener() {        return platformActionListener;    }    public void setPlatformActionListener(            PlatformActionListener platformActionListener) {        this.platformActionListener = platformActionListener;    }    public void showShareWindow() {        View view = LayoutInflater.from(context).inflate(R.layout.share_layout,null);        GridView gridView = (GridView) view.findViewById(R.id.share_gridview);        ShareAdapter adapter = new ShareAdapter(context);        gridView.setAdapter(adapter);        Button btn_cancel = (Button) view.findViewById(R.id.btn_cancel);        // 取消按鈕        btn_cancel.setOnClickListener(new OnClickListener() {            public void onClick(View v) {                // 銷毀彈出框                dismiss();            }        });        // 設定SelectPicPopupWindow的View        this.setContentView(view);        // 設定SelectPicPopupWindow彈出表單的寬        this.setWidth(LayoutParams.FILL_PARENT);        // 設定SelectPicPopupWindow彈出表單的高        this.setHeight(LayoutParams.WRAP_CONTENT);        // 設定SelectPicPopupWindow彈出表單可點擊        this.setFocusable(true);        // 設定SelectPicPopupWindow彈出表單動畫效果        this.setAnimationStyle(R.style.AnimBottom);        // 執行個體化一個ColorDrawable顏色為半透明        ColorDrawable dw = new ColorDrawable(0xb0000000);        // 設定SelectPicPopupWindow彈出表單的背景        this.setBackgroundDrawable(dw);        gridView.setOnItemClickListener(new ShareItemClickListener(this));    }    private class ShareItemClickListener implements OnItemClickListener {        private PopupWindow pop;        public ShareItemClickListener(PopupWindow pop) {            this.pop = pop;        }        @Override        public void onItemClick(AdapterView<?> parent, View view, int position,                long id) {            share(position);            pop.dismiss();        }    }    /**     * 分享     *     * @param position     */    private void share(int position) {        if (position == 1) {            qq();        } else if (position == 4) {            qzone();        } else if(position==5){            shortMessage();        }else{            Platform plat = null;            plat = ShareSDK.getPlatform(context, getPlatform(position));            if (platformActionListener != null) {                plat.setPlatformActionListener(platformActionListener);            }            plat.share(shareParams);        }    }    /**     * 初始化分享參數     *     * @param shareModel     */    public void initShareParams(ShareModel shareModel) {        if (shareModel != null) {            ShareParams sp = new ShareParams();            sp.setShareType(Platform.SHARE_TEXT);            sp.setShareType(Platform.SHARE_WEBPAGE);            sp.setTitle(shareModel.getText());            sp.setText(shareModel.getText());            sp.setUrl(shareModel.getUrl());            sp.setImageUrl(shareModel.getImageUrl());            shareParams = sp;        }    }    /**     * 擷取平台     *     * @param position     * @return     */    private String getPlatform(int position) {        String platform = "";        switch (position) {        case 0:            platform = "Wechat";            break;        case 1:            platform = "QQ";            break;        case 2:            platform = "SinaWeibo";            break;        case 3:            platform = "WechatMoments";            break;        case 4:            platform = "QZone";            break;        case 5:            platform = "ShortMessage";            break;        }        return platform;    }    /**     * 分享到QQ空間     */    private void qzone() {        ShareParams sp = new ShareParams();        sp.setTitle(shareParams.getTitle());        sp.setTitleUrl(shareParams.getUrl()); // 標題的超連結        sp.setText(shareParams.getText());        sp.setImageUrl(shareParams.getImageUrl());        sp.setComment("我對此分享內容的評論");        sp.setSite(shareParams.getTitle());        sp.setSiteUrl(shareParams.getUrl());        Platform qzone = ShareSDK.getPlatform(context, "QZone");        qzone.setPlatformActionListener(platformActionListener); // 設定分享事件回調 //                                                                    // 執行圖文分享        qzone.share(sp);    }    private void qq() {        ShareParams sp = new ShareParams();        sp.setTitle(shareParams.getTitle());        sp.setTitleUrl(shareParams.getUrl()); // 標題的超連結        sp.setText(shareParams.getText());        sp.setImageUrl(shareParams.getImageUrl());        sp.setComment("我對此分享內容的評論");        sp.setSite(shareParams.getTitle());        sp.setSiteUrl(shareParams.getUrl());        Platform qq = ShareSDK.getPlatform(context, "QQ");        qq.setPlatformActionListener(platformActionListener);        qq.share(sp);    }    /**     * 分享到簡訊     */    private void shortMessage() {        ShareParams sp = new ShareParams();        sp.setAddress("");        sp.setText(shareParams.getText()+"這是網址《"+shareParams.getUrl()+"》很給力哦!");        Platform circle = ShareSDK.getPlatform(context, "ShortMessage");        circle.setPlatformActionListener(platformActionListener); // 設定分享事件回調        // 執行圖文分享        circle.share(sp);    }}


2.顯示九宮格的ShareAdapter .java

/** @Title:  ShareAdapter.java* @Copyright:  XXX Co., Ltd. Copyright YYYY-YYYY,  All rights reserved* @data:  2014-7-21 下午2:30:32* @version:  V1.0*/package com.example.sharesdk;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;/** * TODO< 分享彈出框Adapter > * @data:  2014-7-21 下午2:30:32 * @version:  V1.0 */public class ShareAdapter extends BaseAdapter {     private static String[] shareNames = new String[] {"", "QQ", "微博","朋友圈", "QQ空間", "簡訊"};        private int[] shareIcons = new int[] {R.drawable.sns_weixin_icon, R.drawable.sns_qqfriends_icon,  R.drawable.sns_sina_icon,R.drawable.sns_weixin_timeline_icon,                R.drawable.sns_qzone_icon,R.drawable.short_message_nor};        private LayoutInflater inflater;        public ShareAdapter(Context context)        {            inflater = LayoutInflater.from(context);        }        @Override        public int getCount()        {            return shareNames.length;        }        @Override        public Object getItem(int position)        {            return null;        }        @Override        public long getItemId(int position)        {            return 0;        }        @Override        public View getView(int position, View convertView, ViewGroup parent)        {            if (convertView == null){                convertView = inflater.inflate(R.layout.share_item, null);            }            ImageView shareIcon = (ImageView) convertView.findViewById(R.id.share_icon);            TextView shareTitle = (TextView) convertView.findViewById(R.id.share_title);            shareIcon.setImageResource(shareIcons[position]);            shareTitle.setText(shareNames[position]);            return convertView;        }    }


3.別忘記了添加回調


註:包名別搞錯了



樣本源碼下載連結:http://download.csdn.net/detail/gao_chun/8264873

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.