
本文实例自定义PopupWindow,点击d出PopupWindow,背景变暗,仿点击d出分享功能,供大家参考,具体内容如下
注:参照大神代码写的
自定义代码
package com.duanlian.popupwindowdemo; import androID.app.Activity; import androID.content.Context; import androID.graphics.drawable.colorDrawable; import androID.vIEw.LayoutInflater; import androID.vIEw.VIEw; import androID.vIEw.WindowManager; import androID.Widget.linearLayout; import androID.Widget.PopupWindow; import androID.Widget.TextVIEw; /** * 自定义popupWindow */ public class RewritePopwindow extends PopupWindow { private VIEw mVIEw; public RewritePopwindow(Activity context,VIEw.OnClickListener itemsOnClick) { super(context); initVIEw(context,itemsOnClick); } private voID initVIEw(final Activity context,VIEw.OnClickListener itemsOnClick) { LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mVIEw = mInflater.inflate(R.layout.popupwindow_share,null); linearLayout weiXFrIEnd = (linearLayout) mVIEw.findVIEwByID(R.ID.weixinghaoyou); linearLayout frIEndster = (linearLayout) mVIEw.findVIEwByID(R.ID.pengyouquan); linearLayout QQFrIEnd = (linearLayout) mVIEw.findVIEwByID(R.ID.qqhaoyou); linearLayout QQZone = (linearLayout) mVIEw.findVIEwByID(R.ID.qqkongjian); TextVIEw canaleTv = (TextVIEw) mVIEw.findVIEwByID(R.ID.share_cancle); canaleTv.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { //销毁d出框 dismiss(); backgroundAlpha(context,1f); } }); //设置按钮监听 weiXFrIEnd.setonClickListener(itemsOnClick); frIEndster.setonClickListener(itemsOnClick); QQFrIEnd.setonClickListener(itemsOnClick); QQZone.setonClickListener(itemsOnClick); //设置SelectPicPopupWindow的VIEw this.setContentVIEw(mVIEw); //设置SelectPicPopupWindowd出窗体的宽 this.setWIDth(WindowManager.LayoutParams.FILL_PARENT); //设置SelectPicPopupWindowd出窗体的高 this.setHeight(WindowManager.LayoutParams.WRAP_CONTENT); //设置SelectPicPopupWindowd出窗体可点击 this.setFocusable(true); //设置PopupWindow可触摸 this.settouchable(true); //设置非PopupWindow区域是否可触摸 // this.setoutsIDetouchable(false); //设置SelectPicPopupWindowd出窗体动画效果 // this.setAnimationStyle(R.style.select_anim); //实例化一个colorDrawable颜色为半透明 colorDrawable DW = new colorDrawable(0x00000000); //设置SelectPicPopupWindowd出窗体的背景 this.setBackgroundDrawable(DW); backgroundAlpha(context,0.5f);//0.0-1.0 this.setondismissListener(new OndismissListener() { @OverrIDe public voID ondismiss() { // Todo auto-generated method stub backgroundAlpha(context,1f); } }); } /** * 设置添加屏幕的背景透明度 * * @param bgAlpha */ public voID backgroundAlpha(Activity context,float bgAlpha) { WindowManager.LayoutParams lp = context.getwindow().getAttributes(); lp.Alpha = bgAlpha; context.getwindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); context.getwindow().setAttributes(lp); } } MainActivity中用
package com.duanlian.popupwindowdemo; import androID.os.Bundle; import androID.support.v7.app.AppCompatActivity; import androID.vIEw.Gravity; import androID.vIEw.VIEw; import androID.Widget.Toast; public class MainActivity extends AppCompatActivity { private RewritePopwindow mPopwindow; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); findVIEwByID(R.ID.share).setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { mPopwindow = new RewritePopwindow(MainActivity.this,itemsOnClick); mPopwindow.showAtLocation(vIEw,Gravity.BottOM | Gravity.CENTER_HORIZONTAL,0); } }); } //为d出窗口实现监听类 private VIEw.OnClickListener itemsOnClick = new VIEw.OnClickListener() { public voID onClick(VIEw v) { mPopwindow.dismiss(); mPopwindow.backgroundAlpha(MainActivity.this,1f); switch (v.getID()) { case R.ID.weixinghaoyou: Toast.makeText(MainActivity.this,"微信好友",Toast.LENGTH_SHORT).show(); break; case R.ID.pengyouquan: Toast.makeText(MainActivity.this,"朋友圈",Toast.LENGTH_SHORT).show(); break; case R.ID.qqhaoyou: Toast.makeText(MainActivity.this,"QQ好友",Toast.LENGTH_SHORT).show(); break; case R.ID.qqkongjian: Toast.makeText(MainActivity.this,"QQ空间",Toast.LENGTH_SHORT).show(); break; default: break; } } }; } 布局文件--popupWindow布局
<?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" > <TextVIEw androID:layout_wIDth="match_parent" androID:Alpha="0.2" androID:layout_height="match_parent" androID:layout_above="@+ID/ll"/> <linearLayout androID:ID="@+ID/ll" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_alignParentBottom="true" androID:orIEntation="vertical"> <linearLayout androID:paddingBottom="30dp" androID:ID="@+ID/share_ll" androID:paddingtop="20dp" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:paddingRight="20dp" androID:background="#ebebeb" androID:paddingleft="20dp" androID:orIEntation="horizontal" > <linearLayout androID:ID="@+ID/weixinghaoyou" androID:layout_wIDth="0dp" androID:layout_weight="1" androID:layout_height="wrap_content" androID:orIEntation="vertical" > <ImageVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:background="@mipmap/icon_weixin_fenxiang"/> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:gravity="center" androID:onClick="share" androID:layout_gravity="center" androID:layout_margintop="10dp" androID:text="微信好友" androID:textcolor="#000000"/> </linearLayout> <linearLayout androID:ID="@+ID/pengyouquan" androID:layout_wIDth="0dp" androID:layout_weight="1" androID:layout_height="wrap_content" androID:orIEntation="vertical" > <ImageVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:background="@mipmap/icon_quan"/> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:gravity="center" androID:onClick="share" androID:layout_gravity="center" androID:layout_margintop="10dp" androID:text="朋友圈" androID:textcolor="#000000"/> </linearLayout> <linearLayout androID:ID="@+ID/qqhaoyou" androID:layout_wIDth="0dp" androID:layout_weight="1" androID:layout_height="wrap_content" androID:orIEntation="vertical" > <ImageVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:background="@mipmap/icon_qq_fenxiang"/> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:gravity="center" androID:onClick="share" androID:layout_gravity="center" androID:layout_margintop="10dp" androID:text="QQ" androID:textcolor="#000000"/> </linearLayout> <linearLayout androID:ID="@+ID/qqkongjian" androID:layout_wIDth="0dp" androID:layout_weight="1" androID:layout_height="wrap_content" androID:orIEntation="vertical" > <ImageVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:layout_gravity="center" androID:background="@mipmap/icon_kongjian"/> <TextVIEw androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:gravity="center" androID:onClick="share" androID:layout_gravity="center" androID:layout_margintop="10dp" androID:text="QQ空间" androID:textcolor="#000000"/> </linearLayout> </linearLayout> <TextVIEw androID:ID="@+ID/line" androID:layout_wIDth="match_parent" androID:layout_height="0.5dp" androID:layout_below="@+ID/share_ll" androID:background="#000000"/> <TextVIEw androID:ID="@+ID/share_cancle" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:gravity="center" androID:textSize="20sp" androID:layout_below="@+ID/line" androID:background="#f5f3f3" androID:paddingBottom="20dp" androID:paddingtop="20dp" androID:text="取消"/> </linearLayout> </relativeLayout>
mainActivity的布局文件
<?xml version="1.0" enCoding="utf-8"?> <relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:tools="http://schemas.androID.com/tools" androID:ID="@+ID/activity_main" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" tools:context="com.duanlian.popupwindowdemo.MainActivity"> <button androID:ID="@+ID/share" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:text="点击d出"/> </relativeLayout>
demo下载地址:Android PopupWindowd出分享
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的Android自定义PopupWindow仿点击d出分享功能全部内容,希望文章能够帮你解决Android自定义PopupWindow仿点击d出分享功能所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)