博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义的PopupWindow
阅读量:6239 次
发布时间:2019-06-22

本文共 3704 字,大约阅读时间需要 12 分钟。

在Activity中

mPopwindow = new CameraPopwindow(getActivity(), itemsOnClick);                mPopwindow.setFocusable(true); // 获取焦点                mPopwindow.setOutsideTouchable(true);                mPopwindow.showAtLocation(view, Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL, 0, 0);复制代码

重写[Pop]

public class CameraPopwindow extends PopupWindow {                private View mView;            public CameraPopwindow(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.camerapopwendow, null);              TextView camera= (TextView) mView.findViewById(R.id.Personal_fragment_camera);              TextView album= (TextView) mView.findViewById(R.id.Personal_fragment_album);              TextView personal_dimess= (TextView) mView.findViewById(R.id.Personal_fragment_dimess);              personal_dimess.setOnClickListener(new View.OnClickListener() {                  @Override                  public void onClick(View view) {                      //销毁弹出框                      dismiss();                      backgroundAlpha(context, 1f);                  }              });              camera.setOnClickListener(itemsOnClick);              album.setOnClickListener(itemsOnClick);              //设置SelectPicPopupWindow的View              this.setContentView(mView);              //设置SelectPicPopupWindow弹出窗体的宽              this.setWidth(WindowManager.LayoutParams.FILL_PARENT);              //设置SelectPicPopupWindow弹出窗体的高              this.setHeight(WindowManager.LayoutParams.WRAP_CONTENT);              //设置SelectPicPopupWindow弹出窗体可点击              this.setFocusable(true);              //设置PopupWindow可触摸              this.setTouchable(true);              //设置非PopupWindow区域是否可触摸              ColorDrawable dw = new ColorDrawable(0x00000000);              //设置SelectPicPopupWindow弹出窗体的背景              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);                    }                 }                                                                      //不要忘记最后写上~~~~~                        //Dialog窗体泄露解决                        @Override                                    public void onDestroy() {                            super.onDestroy();                            if (dialog != null && dialog.isShowing()) {                                dialog.dismiss();                                dialog = null;                            }                        }                                                    复制代码

CameraPopwindow LinearLayout XML

复制代码

转载地址:http://lrzia.baihongyu.com/

你可能感兴趣的文章
从无线安全到内网渗透
查看>>
Xamarin iOS教程之申请付费开发者账号下载证书
查看>>
!+"\v1" 用来“判断浏览器类型”还是用来“IE判断版本”的问题!
查看>>
javascript之Style物
查看>>
C# 公历转农历
查看>>
LeetCode - Divide Two Integers
查看>>
去掉 “当前安全设置会使计算机有风险”提示
查看>>
sql 聚合函数
查看>>
ABP源码分析二十:ApplicationService
查看>>
学习OpenCV——BOW特征提取函数(特征点篇)
查看>>
帮你店铺日销千单的20个淘宝小技巧
查看>>
python deep copy and shallow copy
查看>>
I.MX6 Ethernet MAC (ENET) MAC Address hacking
查看>>
下载本 WebEnh博客 安卓APP
查看>>
iOS中常见 Crash 及解决方案
查看>>
【python】datetime获取日期,前一天日期
查看>>
Lua简易入门教程
查看>>
如果使用百度云盘同步电脑里文件夹
查看>>
linux内核栈与用户栈【转】
查看>>
一次完整的http事务
查看>>