(七十三) PopupWindow的使用

1、创建一个PopupWindow

    /**
     * 创建一个PopupWindow
     */
    private void createPopupWindow() {
        LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = layoutInflater.inflate(R.layout.popup_window_layout, null);
        popupWindow = new PopupWindow(view, LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
        // 产生activity背景变暗效果
        WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.alpha = 0.4f;
        getWindow().setAttributes(lp);
        popupWindow.setFocusable(true);// PopUpWindow可以看作一个类似于模态对话框的东西,如果设置是false只是一个浮现在当前界面上的view而已,不影响当前界面的任何操作
        popupWindow.setOutsideTouchable(true); // 点击popWin以处的区域,自动关闭
        ColorDrawable cd = new ColorDrawable(0x000000);
        popupWindow.setBackgroundDrawable(cd); // 如果不设置PopupWindow的背景,点击外部区域无法dismiss弹框,不能触发OnDismissListener
        popupWindow.setAnimationStyle(R.style.PopupWindowAnimation);
        popupWindow.showAsDropDown(titleBarView, titleBarView.getWidth()
                - popupWindow.getWidth(), 0);// 设置好参数之后再show
        popupWindow.update(); // 刷新状态
        // 监听PopupWindow被dismiss的时候,恢复activity透明度
        popupWindow.setOnDismissListener(new OnDismissListener() {
            @Override
            public void onDismiss() {
                WindowManager.LayoutParams lp = getWindow().getAttributes();
                lp.alpha = 1f;
                getWindow().setAttributes(lp);
            }
        });
    }
时间: 2024-08-10 00:24:01

(七十三) PopupWindow的使用的相关文章

七十三、分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect传递参数

七十三.分发系统介绍.expect脚本远程登录 一.分发系统介绍 expect脚本:能传输文件,可以远程执行命令,不需要输入密码,上线代码. 首先,准备一台模板机器,这台机器上的代码是最新的代码,准备要上线的代码,要知道要线上机器的ip地址,还有对应用户和密码. 二.expect脚本远程登录 #  yum install -y expect 自动远程登录 [[email protected] sbin]# vim 1.expect       路径:/usr/local/sbin/ #! /us

一个屌丝程序猿的人生(七十三)

"打印多少份好呢?"林萧一边思考,一边自言自语的念叨着. 素来有选择恐惧症的林萧,最怕的就是这类,看似是小问题的选择题. 好在复印店的工作人员,经常接到这种打印简历的活儿,所以给了林萧一个建议,这才避免了林萧的纠结. 打印完简历后,林萧先是吃了顿下午饭,随后便带着自己打印的10份简历,朝着培训机构赶了过去. 等林萧到的时候,教室里已经完全变了样子. 大部分的桌椅都集中在教室后方,而教室的最前面,紧挨着讲台的地方,整整齐齐的摆了一排桌椅. 而教室中央的空地上,则是站满了培训机构的学生.

第三百七十三天 how can I 坚持

忙碌/学习起来时间是过得 好快啊. linux关闭桌面显示.不是修改/dev/inittab文件,而是这个文件有提示.systemctl set-default xxx 还有yum search ifconfig, yum install xxx 装的虚拟机都已经装了ftp了,还想自己装装试试来呢. 上火了 舌头疼啊,晚上也没吃饭,一天天过得,有点小煎熬,得行动起来,抓紧找个女朋友. 睡觉.

上班的第四百七十三天

今天有点累,可能是最近超负荷加班学习,也有可能是昨晚右手又调皮了,所以今天的效率有点低. 不过我搞清楚了服务器业务逻辑的三个大类中的两个,分别是资源管理器和通信模块. 通信模块在服务器启动的时候就初始化,并且将每个通信模块(NPC模块.消耗物品模块等等)对应于客户端的请求的消息处理方法注册到一个全局数组上去.那么以后客户端有消息过来的时候,就根据moduleID和funcID的乘积去调全局数组里面的处理方法.服务器主循环里面会在一定时间后去读消息队列,依次处理那些请求. 而资源管理器也是在服务器

Android笔记(七十三) Android权限问题整理 非常全面

Android权限系统非常庞大,我们在Android系统中做任何操作都需要首先获取Android系统权限,本文记录了所有的Android权限问题,整理一下分享给大家. 访问登记属性 android.permission.ACCESS_CHECKIN_PROPERTIES读取或写入登记check-in数据库属性表的权限 获取错略位置 android.permission.ACCESS_COARSE_LOCATION通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~150

three.js 源码注释(七十三)extras/geometries/TextGeometry.js

商域无疆 (http://blog.csdn.net/omni360/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:商域无疆 -  本博客专注于 敏捷开发及移动和物联设备研究:数据可视化.GOLANG.Html5.WEBGL.THREE.JS,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 俺也是刚开始学,好多地儿肯定不对还请见谅. 以下代码是THREE.JS 源码文件中extras/geometries/TextGeometry.js文件的注释. 更多更

一起talk C栗子吧(第七十三回:C语言实例--DIY pwd命令)

各位看官们,大家好,上一回中咱们说的是DIY date命令的例子,这一回咱们说的例子是:DIY pwd命令.闲话休提,言归正转.让我们一起talk C栗子吧! 看官们,经常切换目录的时候,就会有不知道现在位于哪个目录下的感觉,这个时候就需要使用PWD命令来显示当前在哪个目录中.今天,我们一起来DIY PWD命令. 下面是DIY PWD命令的具体步骤: 1.使用getcwd函数获取当前的路径: 2.输出步骤1中获取到的路径. 下是我们DIY PWD命令的代码,请参考: int pwds() { c

(七十三)iOS本地推送通知的实现

iOS的推送通知分为本地推送和网络推送两种,如果App处于挂起状态,是可以发送本地通知的,如果已经被杀掉,则只有定时通知可以被执行,而类似于QQ的那种网络消息推送就无法实现了,因为App的网络模块在被杀掉后是无法执行的,这时候就要借助远程通知,通过苹果的服务器转发通知到手机,本文只介绍本地通知的用法. ①对于iOS8及以上的版本,需要注册本地通知才能使用,一般在AppDelegate中注册: if ([[UIDevice currentDevice].systemVersion doubleVa

053(七十三)

361. 361.When performing a database duplication, which duplicate database parameter would you set to ensure that the online redo logs are created in the correct location? A. log_file_name_convert B. convert_log_file_name C. file_name_convert_log D. r