自定义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
- 自定义UMeng分享面板
- UMeng分享面板无法弹出解决办法
- UMeng分享
- Android自定义系统分享面板
- 友盟自定义分享面板
- ShareSDK自定义分享的面板
- 友盟自定义分享面板(GridView)
- 311_友盟分享自定义面板
- Umeng微信分享
- Umeng 分享GIF图
- Umeng分享步骤
- iOS - Umeng分享
- iOS Umeng分享
- Umeng 分享集成
- Umeng分享 IOS篇
- 自定义友盟分享面板及里面各个分享监听
- 【分享集成】如何使用友盟分享面板进行自定义
- 友盟第三方分享自定义分享面板
- Fintech前沿技术周报【2016-12-20】
- UltraISO(软碟通)制作U盘启动安装CentOS 7
- win7下安装tensorflow0.12RC版本
- markdown中简单的数学公式及常用字符
- java中注解的使用与实例 (二)
- 自定义UMeng分享面板
- 1.12 Codeforces 28D Do not fear, DravDe is kind DP 思维
- python网络编程
- Spring自定义标签
- c++类的继承与派生
- android增量更新中增量文件的生成和合并
- Sublime text3 的JS智能提示插件
- srtuct 和 class的区别
- cocos2dx屏蔽层的制作,防止当前层点击上一层。