自定义UMeng分享面板

来源:互联网 发布:海康sadp软件使用说明 编辑:程序博客网 时间:2024/05/08 13:56

因为项目需求,需要自定义一一个Umeng分享的面板,实现思路如下

I  集成友盟分享(去友盟开发者平台下载Demo,按照介绍集成即可)

2  定义一个Dialog,通过dialog实现弹出框

3  写一个分享的自定义布局xml文件

4,在Dialog,中引入自定义xml文件。

效果如如下(因为某些原因,微信,微博注册的appkey,不能提供,因此这两个功能暂且无法实现,本文主要目的是实现,自定义           

代码 如 下

(1)  MainActivity.class

public class MainActivity extends AppCompatActivity {    private int screenHeight;    private int screenWidth;    private View share_dialog;    private Dialog showDialogToClearCache;    private TextView share_WX;//分享    private Context context;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {            Window window = getWindow();            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);            window.setStatusBarColor(getResources().getColor(R.color.umeng_blue));        }        setContentView(R.layout.activity_main);        share_WX = (TextView) findViewById(R.id.tv_share);        share_WX.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                popShare();            }        });    }    //弹出自定义的对话框。    private void popShare() {        screenHeight =getScreenHeight(MainActivity.this);        screenWidth = getScreenWidth(this);        if (share_dialog == null) {            share_dialog = LayoutInflater.from(this).inflate(                    R.layout.activity_my_share, null);        }        if (showDialogToClearCache == null) {            showDialogToClearCache = new Dialog(this, R.style.CommentItemDelete);            showDialogToClearCache.setContentView(share_dialog);            android.view.WindowManager.LayoutParams p = showDialogToClearCache                    .getWindow().getAttributes();            p.height = screenHeight; // 高度设置为屏幕的0.3            p.width = screenWidth; // 宽度设置为屏幕的0.5            showDialogToClearCache.getWindow().setAttributes(p); // 设置生效            showDialogToClearCache.setCanceledOnTouchOutside(false);            RelativeLayout dis_pop = (RelativeLayout) share_dialog.findViewById(R.id.dis_pop);            RelativeLayout share_wechat = (RelativeLayout) share_dialog.findViewById(R.id.share_wechat);            RelativeLayout share_wechat_circle1 = (RelativeLayout) share_dialog.findViewById(R.id.share_wechat_circle1);            RelativeLayout share_qq = (RelativeLayout) share_dialog.findViewById(R.id.share_qq);            RelativeLayout share_qzone = (RelativeLayout) share_dialog.findViewById(R.id.share_qzone);            RelativeLayout share_sina = (RelativeLayout) share_dialog.findViewById(R.id.share_sina);            dis_pop.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    showDialogToClearCache.dismiss();                }            });            share_wechat.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    share(SHARE_MEDIA.WEIXIN);                }            });            share_wechat_circle1.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    share(SHARE_MEDIA.WEIXIN_CIRCLE);                }            });            share_qq.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    share(SHARE_MEDIA.QQ);                }            });            share_qzone.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    share(SHARE_MEDIA.QZONE);                }            });            share_sina.setOnClickListener(new View.OnClickListener() {                @Override                public void onClick(View v) {                    share(SHARE_MEDIA.SINA);                }            });        }        showDialogToClearCache.show();    }    private void share(SHARE_MEDIA qq) {        //开启自定义分享页面        UMImage image = new UMImage(context, "https://ss2.baidu.com/6ONYsjip0QIZ8tyhnq/it/u=2042276435,923048600&fm=80");        new ShareAction(this)                .setPlatform(qq)                .setCallback(umShareListener)                .withTitle("我的分享")                .withText("hello world!")                .withTargetUrl("http://www.baidu.com")                .withMedia(image)                .share();    }    private UMShareListener umShareListener = new UMShareListener() {        @Override        public void onResult(SHARE_MEDIA platform) {            Log.d("plat", "platform" + platform);            if (platform.name().equals("WEIXIN_FAVORITE")) {                Toast.makeText(context, platform + " 收藏成功啦", Toast.LENGTH_SHORT).show();            } else {                Toast.makeText(context, platform + " 分享成功啦", Toast.LENGTH_SHORT).show();            }            // finish();        }        @Override        public void onError(SHARE_MEDIA platform, Throwable t) {            Toast.makeText(context, platform + " 分享失败啦", Toast.LENGTH_SHORT).show();            if (t != null) {                Log.d("throw", "throw:" + t.getMessage());            }            //finish();        }        @Override        public void onCancel(SHARE_MEDIA platform) {            Toast.makeText(context, platform + " 分享取消了", Toast.LENGTH_SHORT).show();            // finish();        }    };    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        super.onActivityResult(requestCode, resultCode, data);        UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);    }    /**     * 获得屏幕宽度     *     * @param context     * @return     */    public static int getScreenHeight(Context context) {        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);        DisplayMetrics outMetrics = new DisplayMetrics();        wm.getDefaultDisplay().getMetrics(outMetrics);        return outMetrics.heightPixels;    }    /**     * 获得屏幕高度     *     * @param context     * @return     */    public static int getScreenWidth(Context context) {        WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);        DisplayMetrics outMetrics = new DisplayMetrics();        wm.getDefaultDisplay().getMetrics(outMetrics);        return outMetrics.widthPixels;    }}

2 activity_share.xml 
(activity_main.xml文件省略,里面就一个按钮,不在写了 )

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_gravity="center"    android:id="@+id/dis_pop"    android:background="@color/transparent"    >    <!--底部大布局-->    <LinearLayout        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:orientation="vertical"        android:weightSum="1">        <!--分享内容布局-->        <LinearLayout            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:background="@color/white"            android:orientation="vertical"            android:layout_weight="0.32">            <!--第一排-->            <LinearLayout                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:orientation="horizontal">                <RelativeLayout                    android:id="@+id/share_wechat"                    android:layout_width="wrap_content"                    android:layout_height="80dp"                    android:layout_weight="1"                   >                    <ImageView                        android:layout_marginBottom="10dp"                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:background="@drawable/umeng_socialize_wechat"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="微信"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>                <RelativeLayout                    android:id="@+id/share_wechat_circle1"                    android:layout_width="wrap_content"                    android:layout_height="80dp"                    android:layout_weight="1"                   >                    <ImageView                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:background="@drawable/umeng_socialize_wxcircle"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="朋友圈"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>                <RelativeLayout                    android:id="@+id/share_qq"                    android:layout_width="wrap_content"                    android:layout_height="80dp"                    android:layout_weight="1"                    >                    <ImageView                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:background="@drawable/umeng_socialize_qq"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="QQ"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>                <RelativeLayout                    android:id="@+id/share_qzone"                    android:layout_width="wrap_content"                    android:layout_height="80dp"                    android:layout_weight="1"                    >                    <ImageView                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:background="@drawable/umeng_socialize_qzone"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="QQ空间"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>                <RelativeLayout                    android:id="@+id/share_sina"                    android:layout_width="wrap_content"                    android:layout_height="80dp"                    android:layout_weight="1"                   >                    <ImageView                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:background="@drawable/umeng_socialize_sina"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="新浪微博"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>            </LinearLayout>            <!--第二排布局-->            <LinearLayout                android:layout_width="match_parent"                android:layout_height="wrap_content"                android:orientation="horizontal">                <RelativeLayout                    android:id="@+id/rl_share_qqzone"                    android:layout_width="0dp"                    android:layout_height="80dp"                    android:layout_weight="1"                    >                    <ImageView                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:textColor="#444"                        android:background="@drawable/zcopy"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="复制链接"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>                <RelativeLayout                  android:layout_weight="1"                    android:layout_width="0dp"                    android:layout_height="80dp">                    <ImageView                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:background="@drawable/zshare"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="分享到好友"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>                <RelativeLayout                    android:id="@+id/rl_share_sina"                    android:layout_width="0dp"                    android:layout_height="80dp"                    android:layout_weight="1">                    <ImageView                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:background="@drawable/zshare"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="分享到好友"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>                <RelativeLayout                   android:visibility="invisible"                    android:layout_width="0dp"                    android:layout_height="80dp"                    android:layout_weight="1">                    <ImageView                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:background="@drawable/zshare"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="分享到好友"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>                <RelativeLayout                    android:visibility="invisible"                    android:layout_width="0dp"                    android:layout_height="80dp"                    android:layout_weight="1">                    <ImageView                        android:layout_width="50dp"                        android:layout_height="50dp"                        android:layout_centerHorizontal="true"                        android:layout_marginTop="10dp"                        android:background="@drawable/zshare"                        android:scaleType="fitXY" />                    <TextView                        android:layout_width="wrap_content"                        android:layout_height="20dp"                        android:layout_alignParentBottom="true"                        android:layout_centerHorizontal="true"                        android:layout_marginBottom="4dp"                        android:layout_marginLeft="2dp"                        android:layout_marginRight="2dp"                        android:gravity="center"                        android:singleLine="true"                        android:text="分享到好友"                        android:textColor="#444"                        android:textSize="12sp" />                </RelativeLayout>            </LinearLayout>        </LinearLayout>        <!--取消按钮布局-->        <TextView            android:id="@+id/tv_cancle"            android:layout_width="match_parent"            android:layout_height="88dp"            android:layout_marginBottom="10dp"            android:gravity="center"            android:padding="15dp"            android:background="@color/white"            android:text="取消"            android:textColor="#000000" />    </LinearLayout></RelativeLayout>


 源码链接 :http://download.csdn.net/detail/zlb_lover/9716808

0 0
原创粉丝点击