package com.pan.simplepicture.widget; import android.annotation.TargetApi; import android.app.Activity; import android.content.Context; import android.graphics.BitmapFactory; import android.os.Build; import android.util.AttributeSet; import android.view.View; import android.widget.GridView; import android.widget.LinearLayout; import com.pan.simplepicture.R; import com.pan.simplepicture.adapter.ShareAdapter; import com.pan.simplepicture.bean.Share; import com.pan.simplepicture.inter.OnShareListener; import com.umeng.socialize.ShareAction; import com.umeng.socialize.UMShareListener; import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.media.UMImage; import java.util.ArrayList; import java.util.List; import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; import butterknife.OnItemClick; public class ShareView extends LinearLayout { private Context mContext; @TargetApi(Build.VERSION_CODES.LOLLIPOP) public ShareView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context, attrs, defStyleAttr, defStyleRes); this.mContext = context; init(); // TODO Auto-generated constructor stub } @TargetApi(Build.VERSION_CODES.LOLLIPOP) public ShareView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.mContext = context; // TODO Auto-generated constructor stub init(); } public ShareView(Context context, AttributeSet attrs) { super(context, attrs); this.mContext = context; // TODO Auto-generated constructor stub init(); } public ShareView(Context context) { super(context); this.mContext = context; // TODO Auto-generated constructor stub init(); } @Bind(R.id.gv_share) GridView gv_share; UMImage image; @OnItemClick(R.id.gv_share) public void onItemClick(int position) { if (mOnShareListener != null) mOnShareListener.onCancle(); mOnShareListener.onShareData(new ShareAction((Activity) mContext) .setPlatform(mAdapter.getItem(position).share_media) .withMedia(image) .setCallback(new UMShareListener() { @Override public void onResult(SHARE_MEDIA platform) { mOnShareListener.onShareSuccess(platform); } @Override public void onError(SHARE_MEDIA platform, Throwable t) { mOnShareListener.onShareFailed(platform); } @Override public void onCancel(SHARE_MEDIA platform) { mOnShareListener.onShareCancle(platform); } })); } @OnClick(R.id.btn_cancle) public void onDismiss() { if (mOnShareListener != null) mOnShareListener.onCancle(); } private SHARE_MEDIA[] share_medias = { SHARE_MEDIA.QQ, SHARE_MEDIA.WEIXIN_CIRCLE, SHARE_MEDIA.WEIXIN, SHARE_MEDIA.QZONE, SHARE_MEDIA.SINA }; private int[] imgs = {R.drawable.qq_selector, R.drawable.wechatmoment_selector, R.drawable.wechat_selector, R.drawable.qzone_selector, R.drawable.sina_selector}; private String[] platform_names = {"QQ", "朋友圈", "微信", "QQ空间", "新浪微博"}; private void init() { View view = View.inflate(mContext, R.layout.share_dialog, this); ButterKnife.bind(this, view); List<Share> mList = new ArrayList<>(); for (int i = 0; i < imgs.length; i++) { Share share = new Share(); share.share_media = share_medias[i]; share.resPic = imgs[i]; share.resStr = platform_names[i]; mList.add(share); } mAdapter = new ShareAdapter(mContext, mList); gv_share.setAdapter(mAdapter); image = new UMImage(mContext, BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher)); } private ShareAdapter mAdapter; public void setOnShareListener(OnShareListener mOnShareListener) { this.mOnShareListener = mOnShareListener; } private OnShareListener mOnShareListener; }