首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android利用WindowManager实现悬浮

前言 你会发现QQ视频的时候,就算手机回到主页,视频小模块依旧能悬浮在桌面上。还有当年很火的各种手机杀毒软件的桌面小助手,总能在呆在桌面。这种悬浮的操作就需要用到Window。...层级高的Window会覆盖层级低的Window,跟Android5.0引入的Z轴类似。 权限 Android6.0以上,如果要用系统Window,我们需要申请悬浮权限。...Manifests: <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" / 判断是否有悬浮权限: Settings.canDrawOverlays...Demo 利用ActivityLifecycleCallbacks实现了前后台的监听,切换到后台时隐藏了悬浮。...源码下载:Android利用WindowManager实现悬浮 以上就是本文的全部内容,希望对大家的学习有所帮助。

3.9K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android 可拖动悬浮实现

    作者:Kuky_xs 博客:https://www.jianshu.com/p/1d22edea2647 最近公司的项目里,需要通过悬浮进行控制,悬浮根据手势进行拖动。...,接着在手指在 indicatorView 按下的时候,添加一个空的 RelativeLayout,作为悬浮的 rootview,然后往 rootview 添加悬浮内容 contentView,通过...> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="...最后还需要判断最后一下手指的滑动方向,如果和初始的方向相反,则需要将拖出来的悬浮自动回滚到初始状态。...等到悬浮完全展示的时候,点击空白的地方,悬浮又需要从当前的位置回滚到初始的位置,其原理和拖出来的原理是一样的。

    2.1K21

    Android 悬浮功能的实现

    业务场景 以微信视频通话为例,在视频通话时,我们打开其他应用或点击Home键退出时或点击缩放图标,悬浮会显示在其他应用之上,给人的假象是通话页面变小了,点击悬浮回到通过页面,悬浮消失。...1.悬浮可以显示在其他应用或launchers之上,这个肯定需要悬浮权限,而悬浮权限属于特殊权限,所以只能通过引导用户去打开无法像危险权限那样直接申请。...2.通话页面隐藏时悬浮显示,通话页面显示时悬浮隐藏,可以看出悬浮和Activity的生命周期相关联,所以悬浮的Service和通话页面的Activity是通过bind去绑定的。...判断是否有悬浮权限 点击左上角图标时,我们要先判断当前app是否有悬浮权限,首先我们在配置文件中添加,悬浮的权限。... (很多文章标题都是悬浮如何绕过权限,什么设置类型为TOAST

    6.1K10

    Android实现悬浮全系统版本

    悬浮是在系统上显示的内容,好像微信视频聊天时的小窗口一样,在退出软件后依然存在的一个窗口,本博客以窗口中放一个button组件为例,简单展示悬浮,其中包括了对Android 6.0以下、Android...v.getId()){ case R.id.floating_btn : startFloatingButtonService(v); break; } } 思路简单解释:点击弹出悬浮按钮时...Build.VERSION.SDK_INT = Build.VERSION_CODES.M”如果系统版本在6.0以下这不需要请求权限,如果系统版本在6.0以上需要进行权限检测以及请求,获取权限后,弹出悬浮框...<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com...源码下载地址:Android悬浮 源码下载 以上就是本文的全部内容,希望对大家的学习有所帮助。

    1.3K10

    Android免权限悬浮组件 - FloatingX

    FloatingX ,一个强大的免权限悬浮组件,支持全局,以及局部悬浮。...背景 在前几个月的业务开发中,我们 app 需要对悬浮进行更改,常见的悬浮实现方式分为两种: 前者是获取权限后,利用 WindowManager 实现 后者是基于 DecorView 实现的插入悬浮...于是我希望有这样一个组件,它必须具备以下基本要求: 无感插入 可拖动 良好的分层设计 这是最开始的功能,但随着封装过程,以及对比知乎等其他悬浮,我发现可能可以让这个东西更有意思,而不只是一个工具类。...插入到 DecorView 可以最大程度控制悬浮的自由度,即悬浮可以真正意义上[全屏]拖动。...感谢 基础 悬浮View 源自 EnFloatingView 的 FloatingMagnetView 实现方式,并在其基础上增加了一些改进。

    2.4K21

    Android悬浮的实现(易错点)

    那么今天我们就来实现一下Android悬浮,以及探索一下实现悬浮时的易错点。 1....实现原理 1.1 悬浮插入接口   在实现悬浮之前,我们需要知道通过什么接口,能够将一个控件放入到屏幕中去。   Android的界面绘制,都是通过WindowMananger的服务来实现的。...<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /   除了这个权限外,我们还需要在系统设置里面对本应用进行设置悬浮权限...增加小功能 3.1 拖动功能   首先想要增加的功能就是能够拖动这个悬浮。因为悬浮显示的位置也许会挡住背后我们想要看到的信息,如果能够把悬浮拖走那就最好了。   ...总结   以上就是Android悬浮的实现方式,以及一些小小的简单应用。   可以总结为以下几个步骤: 1. 声明及申请权限 2. 构建悬浮需要的控件 3.

    3.3K10

    Android悬浮不用动态申请权限方法

    前言 前几天我刚写了一篇《Android实现可移动的悬浮》的文章,需要在AndroidManifest.xml里的加上权限申请 ?...在度娘的帮助下,找到了下面这篇文章《Android无需权限显示悬浮, 兼谈逆向分析app》 由于无法超链接,这里贴上地址:https://www.jianshu.com/p/167fd5f47d5c...android4.3及以下的版本中,如果用TYPE_TOAST悬浮正常显示, 但不能接受触摸事件....---- 回到我们上次悬浮的代码 ? 我们把原来红框里面兼容android8,0版本的判断去掉,改为下面绿框里面的当api<19时用的TYPE_PHONE,否则是TYPE_TOAST....再运行程序即可实现不用动态申请上层权限即可实现android悬浮效果了。 ---- -END-

    5K21

    Android 实现可任意拖动的悬浮功能(类似悬浮球)

    最近开发项目中,有个在屏幕上任意拖动的悬浮功能,其实就是利用 WindowManager的api来完成这个需求,具体的实现的功能如下: 1.自定义view import android.content.Context...() - mOffsetToParentY); mWindowManager.updateViewLayout(RecordScreenView.this, mLayoutParams);//不断刷新悬浮的位置...savedInstanceState) { super.onCreate(savedInstanceState); if (Build.VERSION.SDK_INT = 23) { //设置中请求开启悬浮权限...:name="android.permission.SYSTEM_ALERT_WINDOW"/ //悬浮权限 <application android:allowBackup="true" android...总结 到此这篇关于Android 实现可任意拖动的悬浮功能(类似悬浮球)的文章就介绍到这了,更多相关Android任意拖动的悬浮内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持

    2.6K31

    Android仿微信视屏悬浮效果

    在项目中需要对接入的腾讯云音视频,可以悬浮显示,悬浮可拖拽,并且在悬浮不影响其他的activity的焦点。...这个大神的文章Android基于腾讯云实时音视频仿微信视频通话最小化悬浮,他讲的是视频通话时,将远端视频以悬浮形式展示,根据他的代码我进行了部分简化 1.悬浮效果:点击缩小按钮,将当前远端视屏加载进悬浮...,且悬浮可拖拽,不影响其他界面焦点;点击悬浮可返回原来的Activity 2.实现悬浮需要: 在androidManifest中申请悬浮权限<uses-permission android:name...wmParams = getParams(); // 悬浮默认显示以左上角为起始坐标 wmParams.gravity = Gravity.RIGHT | Gravity.TOP; //悬浮的开始位置...);//悬浮父布局 View mChildView = renderView.getChildView();//加载进悬浮的子View,这个VIew来自天转过来的那个Activity里面的那个需要加载的

    2.4K20

    Android仿微信文章悬浮效果

    序言 前些日子跟朋友聊天,朋友Z果粉,前些天更新了微信,说微信出了个好方便的功能啊,我问是啥功能啊,看看我大Android有没有,他说现在阅读公众号文章如果有人给你发微信你可以把这篇文章当作悬浮悬浮起来...,方便你聊完天不用找继续阅读,听完是不是觉得这叫啥啊,我大Android微信版不是早就有这个功能了吗,我看文章的时候看到过有这个悬浮按钮,但是我一直没有使用过,试了一下还是挺方便的,就想着自己实现一下这个功能...实现 1、权限 首先我们要考虑的一个问题就是权限问题,因为要适配Android 7.0 8.0,添加悬浮是需要申请权限的,这里参考了Android 悬浮权限各机型各系统适配大全这篇文章,适配的比较全...这里需要注意的是,为了适配Android 8.0,Window的类型需要配置一下: 1if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 2...//Android 8.0 3 mLayoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; 4} else

    1.5K30

    Android快速实现触摸移动的悬浮

    本文实例为大家分享了Android实现触摸移动的悬浮的具体代码,供大家参考,具体内容如下 1.触摸移动的悬浮的快速实现 UI ? 2....悬浮实现 2.1 悬浮权限 为了偷懒,我SDK选择比较低的17,如果不配置权限,则应用会运行报错 正规流程,查询是否有悬浮权限,如果没有需要提示,并跳转到悬浮设置界面“即是否允许运行在其他应用上面...:name="android.permission.SYSTEM_ALERT_WINDOW" / 2.2 悬浮配置初始化 这里主要关注 mParams.type 和 mParams.flags 这两个参数是核心...,我们也可以使用View来加载一个布局,为了侧重悬浮界面,我直接使用TextView演示 private void initFloatWindow() { if (mShow == null...mWm.addView(mShow, mParams); 2.4 悬浮隐藏 mWm.removeView(mShow); 2.5 完整示例代码 package com.wu.sufadi; import

    1.2K20

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

    1、悬浮的基本介绍 悬浮,大家应该也不陌生,凌驾于应用之上的一个小弹窗,实现上很简单,就是添加一个系统级别的窗口,Android中通过WindowManagerService( WMS)来管理所有的窗口...Android中的窗口分为三个级别: 1.1 应用窗口,比如Activity的窗口; 1.2 子窗口,依赖于父窗口,比如PopupWindow; 1.3 系统窗口,比如状态栏、Toast,目标悬浮就是系统窗口.... 2、根据产品需求进行设计 先了解一下大概的产品需求: 1、悬浮需要跨越整个应用 2、需要与悬浮进行交互 3、悬浮得移动 4、点击跳转特定的页面 5、消息提示的拖拽小红点 需求很简单...,悬浮的管理,因为后续悬浮布局可能有好几个,可以在这里面进行切换; 5、HomeWatcherReceiver,广播接收者,因为在应用内展示,需要监听用户在点击Home键和切换键的时候隐藏悬浮,...下面看一下创建悬浮的真正操作是怎样的。 FloatWindowManager.java /** * 创建一个小悬浮。初始位置为屏幕的右下角位置。

    5.2K31

    Android各版本查询和开启悬浮权限

    Android 各版本查询和开启悬浮权限 如果你是从事Android开发的程序员,那么你肯定对于权限这个词不会陌生,Android的权限分为一般权限和危险权限,一般权限(只需在AndroidManifest.xml...悬浮权限 悬浮权限不同于其他的权限如相机、相册、文件读写权限等,这些权限,动态申请后,用户只要的应用里面弹出来的提示框里面开启就可以了,并不会离开应用,而开启悬浮权限用户则需要进入到应用列表或者是应用详情里面开启悬浮权限...业务逻辑: APP默认是没有开启这个悬浮权限的,所以需要申请,而申请之后又要先判断有没有开启这个权限,这个判断是很重要的,你总不能每次都让用户去应用列表看这个权限有没有开启吧。...判断也是要分Android的版本的,如Android6.0、Android6.0至Android8.0、Android8.0以上,更低的版本就不考虑了,(你不要和我说你现在还用着Android4.4或者..." /> 权限检查 //判断是否开启悬浮权限 context可以用你的Activity.或者tiis public static boolean checkFloatPermission

    9.9K10

    Android经典实战之WindowManager和创建系统悬浮

    创建系统悬浮的步骤 1....检查并请求权限 在Android 6.0及更高版本中,用户需要在设置中手动授予悬浮权限。你需要在应用启动时检查并请求用户授权悬浮权限。 if (!...} else { super.onActivityResult(requestCode, resultCode, data) } } 最佳实践 权限检查:始终在执行任何悬浮操作之前检查和请求权限...资源管理:确保在销毁 Service 时清理并移除悬浮,避免内存泄漏。 交互设计:注意悬浮不应影响正常的应用使用体验,避免高频干扰用户。...通过以上步骤,你可以构建一个简单的系统悬浮,并且确保它在 Android 系统的不同版本中正常工作。 END 点赞转发,让精彩不停歇!关注我们,评论区见,一起期待下期的深度好文!

    16010

    Android仿优酷视频的悬浮播放效果

    之前接了需求要让视频播放时可以像优酷视频那样在悬浮里播放,并且悬浮和主播放页面之间要实现无缝切换,项目中使用的是自封装的ijkplayer 这个要求就代表不能在悬浮中新建视频控件,所以需要在悬浮中复用主页面的视频控件...(true)方法; moveTaskToBack(true); 可以让播放界面退到后台而整个应用不会退回后台 权限请求 要使用悬浮需要申请权限 <uses-permission android:...:drawable/ic_menu_revert" / </FrameLayout 悬浮的滑动,我们可以通过自定义点击监听实现 /** * 浮移动/点击监听 */ private...(Context context){ super(context); this.activity = context; } 对于悬浮的调用 用hasBind来记录是否调用了悬浮...仿优酷视频的悬浮播放的文章就介绍到这了,更多相关android 优酷视频悬浮播放内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

    2.1K20
    领券