PopupWindow 常用方法学习笔记
PopupWindow可以实现浮层效果,而且可以自定义显示位置,出现和退出时的动画。
首先解析一个View
LayoutInflater inflater = getLayoutInflater(); final View view = inflater.inflate(R.layout.popup, null);
创建PopupWindow 构造参数 PopupWindow(View contentView, int width, int height, boolean focusable)。
contentView为要显示的view,width和height为宽和高,值为像素值,也可以是MATCHT_PARENT和WRAP_CONTENT。
focusable为是否可以获得焦点,这是一个很重要的参数。
这里需要为popupWindow设置一个背景,点击其他区域才能让PopupWindow消失。
PopupWindow popupWindow = new PopupWindow(view, 400, 400, true); popupWindow.setBackgroundDrawable(new BitmapDrawable());
显示PopupWindow
showAsDropDown(View anchor)://相对某个控件的位置(正左下方),无偏移 showAsDropDown(View anchor, int xoff, int yoff)://相对某个控件的位置,有偏移 showAtLocation(View parent, int gravity, int x, int y)://相对于父控件的位置(例如正中央Gravity.CENTER,下方Gravity.BOTTOM等),可以设置偏移或无偏移
为PopupWindow指定动画
PopupWindow出现时的动画,popup_enter.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:fromXScale="1.0" android:toXScale="1.0" android:fromYScale="0" android:toYScale="1.0" android:pivotX="50%" android:pivotY="0%"android:duration="100" /> </set>
PopupWindow消失时的动画,popup_exit.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <scale android:fromXScale="1.0" android:toXScale="1.0" android:fromYScale="1.0" android:toYScale="0" android:pivotX="50%" android:pivotY="0%" android:duration="50" /> </set>
再设定动画的style
<style name="PopupAnimation" parent="android:Animation"><item name="android:windowEnterAnimation">@anim/popup_enter</item><item name="android:windowExitAnimation">@anim/popup_exit</item> </style>
最后通过Java代码设置动画
popupWindow.setAnimationStyle(R.style.PopupAnimation);
另外在记录一个从屏幕底部弹出的动画
menu_bottombar_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="250"android:fromYDelta="100.0%"android:toYDelta="0.0" /> </set>
menu_bottombar_out.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" ><translateandroid:duration="250"android:fromYDelta="0.0"android:toYDelta="100%" /> </set>
定义样式
<style name="anim_menu_bottombar"><item name="android:windowEnterAnimation">@anim/menu_bottombar_in</item><item name="android:windowExitAnimation">@anim/menu_bottombar_out</item> </style>
最后显示showAtLocation(findViewById(R.id.layout_main), Gravity.BOTTOM, 0, 0);
PopupWindow 常用方法学习笔记相关推荐
- 2023年软考信息安全工程师备考学习笔记汇总
信息安全工程师分属"信息系统"专业,位处中级资格,2016年下半年,第一次开考信息安全工程师(中级)考试.目前每年考试一次.已开考六次,2016年11月12日,2017年5月20日 ...
- day4 vue 学习笔记 组件 生命周期 数据共享 数组常用方法
系列文章目录 day1学习vue2笔记 vue指令 day2 学习vue2 笔记 过滤器 侦听器 计算属性 axios day3 vue2 学习笔记 vue组件 day4 vue 学习笔记 组件 生命 ...
- Unity API常用方法和类学习笔记2
Unity API常用方法和类学习笔记2 ------Mathf & Input & Vector & Random 类Mathf 一.静态变量 print(Mathf.Deg ...
- Unity API常用方法和类学习笔记1
Unity API常用方法和类学习笔记1 ------主要构架(Unity-Engine.GameObject.Component) 事件 一.事件执行顺序 二.测试代码 using System.C ...
- 《Unity API常用方法和类详细讲解—Siki学院》课程学习笔记02
<Unity API常用方法和类详细讲解-Siki学院>课程学习笔记02 课时10 GameObject.Component和Object的千丝万缕的关系 一个游戏由多个场景组成,一个场景 ...
- 《Unity API常用方法和类详细讲解—Siki学院》课程学习笔记03
<Unity API常用方法和类详细讲解-Siki学院>课程学习笔记03 课时18-20协程及其执行 1.使用Coroutine实现颜色动画渐变 void Update(){if (Inp ...
- oracle常用数据统计,学习笔记:Oracle DBMS_STATS常用方法汇总 常用于收集统计oracle...
天萃荷净 Oracle数据库中DBMS_STATS常用方法(收集oracle数据库.索引.表等信息) –收集Oracle数据库信息命令 EXEC DBMS_STATS.gather_database_ ...
- JS学习笔记十——时间常用方法
前言 时间本身是 JS 中的一个数据类型 Date,是一种引用数据类型,其创建方式有两种:一是 new Date(),创建时间对象,且为当前终端的时间,即电脑时间:二是 new Date(年,月,日, ...
- 一文让你完全弄懂回归问题、激活函数、梯度下降和神经元模型实战《繁凡的深度学习笔记》第 2 章 回归问题与神经元模型(DL笔记整理系列)
<繁凡的深度学习笔记>第 2 章 回归问题与神经元模型(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net/ http ...
最新文章
- 使用工具知乎点赞工具
- 招聘|腾讯机器人实验室语义视觉方向(实习+社招)
- cosx的麦克劳林级数是多少_cosx泰勒展开
- linux内核编译与内核模块
- mysql text 查询速度_数据库学习之让索引加快查询速度(四)
- Rust : RUST_BACKTRACE=1错误提示
- CSDN下载频道积分规则2.1
- 计算机专业及相关知识测试,计算机知识及测验考试.doc
- 东南大学硕士毕业论文Latex 模版教程
- python中show函数的用法_python学习笔记之——函数模块
- 找到解决办法了,特回来写总结,the import cannot be resolved问题可以通过以下方法解决
- feign调用是否会经过网关
- Android之ANR
- 计算机视觉与人的视觉
- linux 服务器 安装网卡驱动,Linux系统下安装Intel千兆网卡驱动
- win10计算机维护,Win10系统打开或关闭自动维护功能的方法
- ardupilot相机拍照控制
- 5 matlab详解牛顿下山法求解复杂函数代数方程和超越方程
- TCP UDP之网络编程及数据库入门
- 计算机主机硬件图片,电脑主机里的各个硬件名称图片用途和使用说明
热门文章
- 360手机浏览器_UC、QQ、华为、360、搜狗、小米、vivo、OPPO等8款手机浏览器被纳入首批传播秩序专项整治...
- selinux= 为 disabled_微课 | 状态管理 SELinux(2)
- Linux系统和windows系统mysql5.7.32的下载
- 2016考试计算机知识基础题库,2016年计算机二级公共基础知识基础练习题演练(6)...
- 英语本科 国外跨计算机,跨专业考研需具备哪些条件,如英语,计算机的过级情况...
- rdd与mysql表 join_Spark 之RDD
- 必须声明标量变量 @列名
- ppp lcp协商报文有哪些_PPP 点到点协议
- 实用供热空调设计手册第三版_【最新资讯】执行主编周敏赴北京、天津进行手册编制工作会谈...
- 1e-5 java_内功心法 -- java.util.LinkedListE (5)