Android自定义PopupWindow仿点击d出分享功能

Android自定义PopupWindow仿点击d出分享功能,第1张

概述本文实例自定义PopupWindow,点击d出PopupWindow,背景变暗,仿点击d出分享功能,供大家参考,具体内容如下

本文实例自定义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出分享功能所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1146869.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存