Android应用内悬浮窗的实现方案示例 您所在的位置:网站首页 怎样添加悬浮窗应用权限设置 Android应用内悬浮窗的实现方案示例

Android应用内悬浮窗的实现方案示例

2024-07-11 04:58| 来源: 网络整理| 查看: 265

1、悬浮窗的基本介绍

悬浮窗,大家应该也不陌生,凌驾于应用之上的一个小弹窗,实现上很简单,就是添加一个系统级别的窗口,Android中通过WindowManagerService( WMS)来管理所有的窗口,对于WMS来说,管你是Activity、Toast、Dialog,都不过是通过WindowManagerGlobal.addView()添加的一个个View。

Android中的窗口分为三个级别:

1.1 应用窗口,比如Activity的窗口;

1.2 子窗口,依赖于父窗口,比如PopupWindow;

1.3 系统窗口,比如状态栏、Toast,目标悬浮窗就是系统窗口.

2、根据产品需求进行设计

先了解一下大概的产品需求:

1、悬浮窗需要跨越整个应用 2、需要与悬浮窗进行交互 3、悬浮窗得移动 4、点击跳转特定的页面 5、消息提示的拖拽小红点

需求很简单,但是如果估算没错,不下一周产品经理会添加新的需求,所以为了更好的后续扩展,需要进行合理的设计,主要分为以下几点:

1、悬浮窗自定义一个FrameLayout布局FloatLayout,里面进行拖动及点击响应处理; 2、FloatMonkService,是一个服务,开启服务的时候创建悬浮窗; 3、FloatCallBack,交互接口,在FloatMonkService里面实现接口,用于交互; 4、FloatWindowManager,悬浮窗的管理,因为后续悬浮窗布局可能有好几个,可以在这里面进行切换; 5、HomeWatcherReceiver,广播接收者,因为在应用内展示,需要监听用户在点击Home键和切换键的时候隐藏悬浮窗,需要FloatMonkService里头动态注册; 6、FloatActionController,其实就是代理,其它模块需要通过它来和悬浮窗进行交互,真正干活的是实现FloatCallBack接口的FloatMonkService; 7、FloatPermissionManager,需要适配各个傻逼机型的权限,庆幸网上已有大佬分享,只需要单独对7.0系统进行一些适配就行,悬浮窗权限适配; 8、拖拽控件DraggableFlagView,直接拿来在悬浮窗上出现很奇怪的问题,所以需要改造一下下才能达到图中效果。

3、具体实现

float_littlemonk_layout.xml

代码语言:javascript复制


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有