Android 实现顶层窗口、悬浮窗口
1、如图片1所示,在一个Android应用中,除了标题栏和底层的ActionBar的区域,是我们可以操纵的UI区域,那是不是说我们就不能改变除了这两个区域的UI呢?答案是否定的。
比如现在我们希望把一个View放在窗口的最低端显示,通过hierarchyviewer工具我们可以发现最底层的ActionBar是在TestActivity布局的父窗口中设置的,那么我们想通过setContentView(R.layout.activity_main)在activity_main布局文件中设置就无法实现了,通过hierarchyviewer发现TestActivity布局的root是一个id为content的FrameLayout,那么可以通过下面两种方法来实现:
2、
private void testLayout(){View content = findViewById(android.R.id.content);ViewGroup parent = (ViewGroup)content.getParent().getParent();getLayoutInflater().inflate(R.layout.add_view, parent);mCloseBarContainer = (LinearLayout) parent.findViewById(R.id.close_bar_container1);}
3、
private void testWindow(){WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);View l= getLayoutInflater().inflate(R.layout.add_view, null);WindowManager.LayoutParams mParams = new WindowManager.LayoutParams(); mParams.width=WindowManager.LayoutParams.MATCH_PARENT;mParams.height=200;mParams.gravity=Gravity.BOTTOM;mWm.addView(l, mParams);mCloseBarContainer = (LinearLayout) l.findViewById(R.id.close_bar_container1);}
通过WindowManager来实现,如果要实现当TestActivity退出时仍然显示这个View的悬浮窗效果的话,只需要在一个后台的Service中来添加View就可以了
4、add_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/close_bar_container1"android:layout_width="fill_parent"android:layout_height="88dip"android:layout_weight="0"android:layout_gravity="bottom"android:clickable="false"android:gravity="center"android:background="#80ff0000"><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:id="@+id/close_bar"android:clickable="false"android:gravity="center"android:orientation="horizontal" ><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:scaleType="center"android:src="@drawable/ic_launcher"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center"android:textSize="14.4sp"android:textStyle="bold"android:textColor="#ffffff"android:text="This is Test!"/></LinearLayout>
</LinearLayout>
5、
Android 实现顶层窗口、悬浮窗口相关推荐
- android实现 桌面移动悬浮窗口实现
现在很多应用都有这样的功能,比如360等安全卫士,手机管家之内的应用. 效果图: 一.实现原理及移动思路 调用WindowManager,并设置WindowManager.LayoutParams的相 ...
- android WindowManager 应用内部悬浮窗口总结
很多地方用到悬浮窗口,但是android现在做了很多限制,禁止悬浮窗口的滥用,尤其是系统权限的窗口基本不予支持,以下是介绍应用内部悬浮窗口不需要任何系统权限的 1 显示一个悬浮窗 // wm = ...
- android多个悬浮窗口的实现,android实现桌面移动悬浮窗口
现在很多应用都有这样的功能,比如360等安全卫士,手机管家之内的应用. 效果图: 一.实现原理及移动思路 调用WindowManager,并设置WindowManager.LayoutParams的相 ...
- android可以有一个悬浮窗口在进入屏保状态显示,点击进入应用,Android如何实现锁屏状态下弹窗...
前言 想在锁屏上面实现弹窗,第一个想法就是利用 WindowManager设置 Window的 Flag,通过设置 Flag的显示优先级来让窗口显示在锁屏的上面. 接下来就是试验可能相关的 Windo ...
- 细数Android 7.0“牛轧糖”的五大缺陷:不支持悬浮窗口
导语:当前,Android 7.0 Nougat(牛轧糖)已经开始被缓慢部署至全球各地的Android设备中.按照惯例,仍然是Nexus设备首先获得谷歌最新的移动操作系统,其他的智能手机则还需要等待一 ...
- Android实现顶层全局窗口,不依赖于Activity的Android全局悬浮窗的实现
前言 当我们在手机上使用360安全卫士时,手机屏幕上时刻都会出现一个小浮动窗口,点击该浮动窗口可跳转到安全卫士的操作界面,而且该浮动窗口不受其他activity的覆盖影响仍然可见(多米音乐也有相关的和 ...
- Android WindowManager和WindowManager.LayoutParams的使用以及实现悬浮窗口的方法
1.理清概念 我们使用过Dialog和PopupWindow,还有Toast,它们都显示在Activity之上.那么我们首先需要理解的是android中是如何去绘制这些UI的呢?这里我只讲我所理解的, ...
- android 添加随意拖动的桌面悬浮窗口,android 添加随意拖动的桌面悬浮窗口
用过新版本android 360手机助手都人都对 360中只在桌面显示一个小小悬浮窗口羡慕不已吧? 其实实现这种功能,主要有两步: 1.判断当前显示的是为桌面.这个内容我在前面的帖子里面已经有过介绍, ...
- android多个悬浮窗口,android 添加随意拖动的桌面悬浮窗口
用过新版本android 360手机助手都人都对 360中只在桌面显示一个小小悬浮窗口羡慕不已吧? 其实实现这种功能,主要有两步: 1.判断当前显示的是为桌面.这个内容我在前面的帖子里面已经有过介绍, ...
- Android 悬浮窗口
Android 悬浮窗口 一.创建悬浮窗口步骤 1.实现一个ViewGroup类,作为悬浮窗口的界面类,以便在里面重写onInterceptTouchEvent和onTouchEvent方法, ...
最新文章
- Apple-Watch开发2 APPIcon设置
- 图解http协议头实例分析
- 干货:阅读跟踪 Java 源码的几个小技巧!
- 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3)
- open the same code side by side with two splited windows at the same time
- NodeJS学习笔记—1.CommonJS规范
- 企业为什么要建设数据分析平台?应该怎么建?
- 绘图解谜:公钥、私钥、证书
- 9-4push方式整合Spark streaming.
- c++ switch 字符串参数_其实我们可以少写点if else和switch
- Python的Boolean操作
- CentOS5.6系统中安装并使用USB无线网卡(配置成功) 转
- 嵌入式linux环境搭建
- Python 字典或JSON模拟数据库的增删改查
- 面向过程编程和面向对象编程的区别
- 条码专题--条码技术应用
- CGAL几何库配置教程
- symbian 串行通信
- 代价敏感学习初探 - 有偏损失函数设计
- 记录清理服务器挖矿木马warmup的命令