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 实现顶层窗口、悬浮窗口相关推荐

  1. android实现 桌面移动悬浮窗口实现

    现在很多应用都有这样的功能,比如360等安全卫士,手机管家之内的应用. 效果图: 一.实现原理及移动思路 调用WindowManager,并设置WindowManager.LayoutParams的相 ...

  2. android WindowManager 应用内部悬浮窗口总结

    很多地方用到悬浮窗口,但是android现在做了很多限制,禁止悬浮窗口的滥用,尤其是系统权限的窗口基本不予支持,以下是介绍应用内部悬浮窗口不需要任何系统权限的 1   显示一个悬浮窗 // wm = ...

  3. android多个悬浮窗口的实现,android实现桌面移动悬浮窗口

    现在很多应用都有这样的功能,比如360等安全卫士,手机管家之内的应用. 效果图: 一.实现原理及移动思路 调用WindowManager,并设置WindowManager.LayoutParams的相 ...

  4. android可以有一个悬浮窗口在进入屏保状态显示,点击进入应用,Android如何实现锁屏状态下弹窗...

    前言 想在锁屏上面实现弹窗,第一个想法就是利用 WindowManager设置 Window的 Flag,通过设置 Flag的显示优先级来让窗口显示在锁屏的上面. 接下来就是试验可能相关的 Windo ...

  5. 细数Android 7.0“牛轧糖”的五大缺陷:不支持悬浮窗口

    导语:当前,Android 7.0 Nougat(牛轧糖)已经开始被缓慢部署至全球各地的Android设备中.按照惯例,仍然是Nexus设备首先获得谷歌最新的移动操作系统,其他的智能手机则还需要等待一 ...

  6. Android实现顶层全局窗口,不依赖于Activity的Android全局悬浮窗的实现

    前言 当我们在手机上使用360安全卫士时,手机屏幕上时刻都会出现一个小浮动窗口,点击该浮动窗口可跳转到安全卫士的操作界面,而且该浮动窗口不受其他activity的覆盖影响仍然可见(多米音乐也有相关的和 ...

  7. Android WindowManager和WindowManager.LayoutParams的使用以及实现悬浮窗口的方法

    1.理清概念 我们使用过Dialog和PopupWindow,还有Toast,它们都显示在Activity之上.那么我们首先需要理解的是android中是如何去绘制这些UI的呢?这里我只讲我所理解的, ...

  8. android 添加随意拖动的桌面悬浮窗口,android 添加随意拖动的桌面悬浮窗口

    用过新版本android 360手机助手都人都对 360中只在桌面显示一个小小悬浮窗口羡慕不已吧? 其实实现这种功能,主要有两步: 1.判断当前显示的是为桌面.这个内容我在前面的帖子里面已经有过介绍, ...

  9. android多个悬浮窗口,android 添加随意拖动的桌面悬浮窗口

    用过新版本android 360手机助手都人都对 360中只在桌面显示一个小小悬浮窗口羡慕不已吧? 其实实现这种功能,主要有两步: 1.判断当前显示的是为桌面.这个内容我在前面的帖子里面已经有过介绍, ...

  10. Android 悬浮窗口

    Android 悬浮窗口 一.创建悬浮窗口步骤     1.实现一个ViewGroup类,作为悬浮窗口的界面类,以便在里面重写onInterceptTouchEvent和onTouchEvent方法, ...

最新文章

  1. Apple-Watch开发2 APPIcon设置
  2. 图解http协议头实例分析
  3. 干货:阅读跟踪 Java 源码的几个小技巧!
  4. 用位运算实现四则运算之加减乘除(用位运算求一个数的1/3)
  5. open the same code side by side with two splited windows at the same time
  6. NodeJS学习笔记—1.CommonJS规范
  7. 企业为什么要建设数据分析平台?应该怎么建?
  8. 绘图解谜:公钥、私钥、证书
  9. 9-4push方式整合Spark streaming.
  10. c++ switch 字符串参数_其实我们可以少写点if else和switch
  11. Python的Boolean操作
  12. CentOS5.6系统中安装并使用USB无线网卡(配置成功) 转
  13. 嵌入式linux环境搭建
  14. Python 字典或JSON模拟数据库的增删改查
  15. 面向过程编程和面向对象编程的区别
  16. 条码专题--条码技术应用
  17. CGAL几何库配置教程
  18. symbian 串行通信
  19. 代价敏感学习初探 - 有偏损失函数设计
  20. 记录清理服务器挖矿木马warmup的命令

热门文章

  1. 安装Cab升级文件的6个方法
  2. Wi-Fi PNO扫描流程(Android P)
  3. 500篇干货解读人工智能新时代
  4. html5视频标签video画中画几个API
  5. 【C语言】动态申请空间
  6. Miktex 安装遇到过的问题
  7. jenkins自动化部署
  8. 【最新】2021年注册测绘师考试测绘案例分析真题及答案解析
  9. 聆听C++语言创建者的教诲
  10. python 多因素方差分析_多因素方差分析估计平方和的三种方法