前言
现在很多应用都使用到悬浮窗,例如微信,斗鱼等应用,微信在视频通话时会开启一个视频窗口悬浮于屏幕之上,点击home退到桌面时,小窗口并未消失,下面我们就实现Android悬浮窗。
原理
如何实现悬浮窗,实现过程中使用到Window,WindowManager这个几个系统API,Window表示一个窗口的概念,他是一个抽象类,它具体实现是PhoneWindow,如何创建一个Window? 使用WindowManager创建一个Window
非常简单。如下
首先在AndroidManifest.xml配置文件添加:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.SYSTEM_OVERLAY_WINDOW" />
调用该方法,可创建一个悬浮窗显示于屏幕之上 private void showFloatingWindow() { button = new Button(this); button.setText("按钮"); button.setOnTouchListener(new FloatingOnTouchListener()); layoutParams = new WindowManager .LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, 0, 0, PixelFormat.TRANSPARENT); layoutParams.flags = WindowMa