前言 之前有写录制视频的小demo,有同学反映要添加浮窗View,这样录制的时候就不需要来回切换当前的页面。所以,这里我晚上花了点时间写了一个FloatingView。...mWindowManager.removeView(mFloatingView); } } Mainfest.xml需要添加相关权限以及注册Service android...:name="android.permission.SYSTEM_ALERT_WINDOW"/> android:name="cn.android.example.knowledge.service.FloatingViewService..." android:enabled="true"/> 这样,就可以把之前的录制视频的代码,与FloatingView相结合,这样录制起来就方便一点了。
作者:Kuky_xs 博客:https://www.jianshu.com/p/1d22edea2647 最近公司的项目里,需要通过悬浮窗进行控制,悬浮窗根据手势进行拖动。...,接着在手指在 indicatorView 按下的时候,添加一个空的 RelativeLayout,作为悬浮窗的 rootview,然后往 rootview 添加悬浮窗内容 contentView,通过...> android="http://schemas.android.com/apk/res/android" android:layout_width="...最后还需要判断最后一下手指的滑动方向,如果和初始的方向相反,则需要将拖出来的悬浮窗自动回滚到初始状态。...等到悬浮窗完全展示的时候,点击空白的地方,悬浮窗又需要从当前的位置回滚到初始的位置,其原理和拖出来的原理是一样的。
业务场景 以微信视频通话为例,在视频通话时,我们打开其他应用或点击Home键退出时或点击缩放图标,悬浮窗会显示在其他应用之上,给人的假象是通话页面变小了,点击悬浮窗回到通过页面,悬浮窗消失。...1.悬浮窗可以显示在其他应用或launchers之上,这个肯定需要悬浮窗权限,而悬浮窗权限属于特殊权限,所以只能通过引导用户去打开无法像危险权限那样直接申请。...2.通话页面隐藏时悬浮窗显示,通话页面显示时悬浮窗隐藏,可以看出悬浮窗和Activity的生命周期相关联,所以悬浮窗的Service和通话页面的Activity是通过bind去绑定的。...判断是否有悬浮窗权限 点击左上角图标时,我们要先判断当前app是否有悬浮窗权限,首先我们在配置文件中添加,悬浮窗的权限。...android:name="android.permission.SYSTEM_ALERT_WINDOW" /> (很多文章标题都是悬浮窗如何绕过权限,什么设置类型为TOAST
目的 我们在很多android应用中可能会看到悬浮窗按钮,最多的应该就是360了,通过代码我们也可以实现这个功能 先上干货 Demo做完的效果演示视频: ?...(context); } }); } } ---- MyWindowManager 这个类是我们管理大小悬浮框的事件类,包括关闭小悬浮窗,展开大悬浮窗等...我们把大小悬浮穿的参数分别对应不同的LayoutParams,都在这里处理 ---- FloatWindow 做一个floatWindow继承自Service 通过Handler和Time控件来刷新悬浮窗是否一直存在...,则创建悬浮窗。...,则移除悬浮窗。
FloatingX ,一个强大的免权限悬浮窗组件,支持全局,以及局部悬浮窗。...背景 在前几个月的业务开发中,我们 app 需要对悬浮窗进行更改,常见的悬浮窗实现方式分为两种: 前者是获取权限后,利用 WindowManager 实现 后者是基于 DecorView 实现的插入悬浮窗...于是我希望有这样一个组件,它必须具备以下基本要求: 无感插入 可拖动 良好的分层设计 这是最开始的功能,但随着封装过程,以及对比知乎等其他悬浮窗,我发现可能可以让这个东西更有意思,而不只是一个工具类。...插入到 DecorView 可以最大程度控制悬浮窗的自由度,即悬浮窗可以真正意义上[全屏]拖动。...感谢 基础 悬浮窗View 源自 EnFloatingView 的 FloatingMagnetView 实现方式,并在其基础上增加了一些改进。
前言 前几天我刚写了一篇《Android实现可移动的悬浮窗》的文章,需要在AndroidManifest.xml里的加上权限申请 ?...在度娘的帮助下,找到了下面这篇文章《Android无需权限显示悬浮窗, 兼谈逆向分析app》 由于无法超链接,这里贴上地址:https://www.jianshu.com/p/167fd5f47d5c...android4.3及以下的版本中,如果用TYPE_TOAST悬浮窗正常显示, 但不能接受触摸事件....---- 回到我们上次悬浮窗的代码 ? 我们把原来红框里面兼容android8,0版本的判断去掉,改为下面绿框里面的当apiandroid的悬浮窗效果了。 ---- -END-
背景 ---- 游戏内的悬浮窗通常情况下只出现在游戏内,用做切换账号、客服中心等功能的快速入口。...本文将介绍几种实现方案,以及我们踩过的坑 方案一:应用外悬浮窗+栈顶权限/生命周期回调 ---- 通常实现悬浮窗,首先考虑到的会是要使用悬浮窗权限,用 WindowManager 在设备界面上 addView...实现( UI 层级较高,应用外显示) 1、弹出悬浮窗需要用到悬浮窗权限 悬浮窗权限--> android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 2、判断悬浮窗游戏内外显示...方式一:使用栈顶权限获取当前 //需要声明权限android:name="android.permission.GET_TASKS" /> //判断当前是否在后台private
序言 前些日子跟朋友聊天,朋友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
3 6.0出现的悬浮窗权限 为什么从6.0说起?...在Android6.0之后,使用悬浮窗功能需要申请开启悬浮窗权限,在API23以下版本编译,悬浮窗权限关闭的,但是没有权限限制,在大于23版本编译,这个权限默认是关闭的,需要获取权限。...6.0之后判断是否有悬浮窗权限,没有则申请权限 android:name="android.permission.SYSTEM_OVERLAY_WINDOW"/>...(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); Toast.makeText(MainActivity.this,"需要取得权限以使用悬浮窗...= new Intent(MainActivity.this, MainService.class); startService(intent); finish(); } 4 8.0对悬浮窗的优化
Android 各版本查询和开启悬浮窗权限 如果你是从事Android开发的程序员,那么你肯定对于权限这个词不会陌生,Android的权限分为一般权限和危险权限,一般权限(只需在AndroidManifest.xml...悬浮窗权限 悬浮窗权限不同于其他的权限如相机、相册、文件读写权限等,这些权限,动态申请后,用户只要的应用里面弹出来的提示框里面开启就可以了,并不会离开应用,而开启悬浮窗权限用户则需要进入到应用列表或者是应用详情里面开启悬浮窗权限...业务逻辑: APP默认是没有开启这个悬浮窗权限的,所以需要申请,而申请之后又要先判断有没有开启这个权限,这个判断是很重要的,你总不能每次都让用户去应用列表看这个权限有没有开启吧。...判断也是要分Android的版本的,如Android6.0、Android6.0至Android8.0、Android8.0以上,更低的版本就不考虑了,(你不要和我说你现在还用着Android4.4或者..." /> 权限检查 //判断是否开启悬浮窗权限 context可以用你的Activity.或者tiis public static boolean checkFloatPermission
创建系统悬浮窗的步骤 1....检查并请求权限 在Android 6.0及更高版本中,用户需要在设置中手动授予悬浮窗权限。你需要在应用启动时检查并请求用户授权悬浮窗权限。 if (!...} else { super.onActivityResult(requestCode, resultCode, data) } } 最佳实践 权限检查:始终在执行任何悬浮窗操作之前检查和请求权限...资源管理:确保在销毁 Service 时清理并移除悬浮窗,避免内存泄漏。 交互设计:注意悬浮窗不应影响正常的应用使用体验,避免高频干扰用户。...通过以上步骤,你可以构建一个简单的系统悬浮窗,并且确保它在 Android 系统的不同版本中正常工作。 END 点赞转发,让精彩不停歇!关注我们,评论区见,一起期待下期的深度好文!
3.3 应用悬浮窗应用内悬浮窗实现流程1.获取WindowManager;2.创建悬浮View;3.设置悬浮View的拖拽事件;4.添加View到WindowManager中对于应用悬浮窗来说,Android...android:name="android.permission.SYSTEM_ALERT_WINDOW" />4.3 初始化悬浮窗第一步:首先创建WindowManager...4.8 悬浮窗权限适配权限配置和请求,这一块倒是没什么坑在当Android7.0以上的时候,需要在AndroidManifest.xml文件中声明SYSTEM_ALERT_WINDOW权限android:name="android.permission.SYSTEM_ALERT_WINDOW" /> android:name="android.permission.SYSTEM_OVERLAY_WINDOW...如果在Android 8.0以上版本仍然使用TYPE_PHONE类型的悬浮窗口,则会出现如下异常信息:android.view.WindowManager$BadTokenException: Unable
在网页中添加悬浮窗,自适应手机电脑平板,码如下: <
ContextCompat.checkSelfPermission(baseContext, it) == PackageManager.PERMISSION_GRANTED } 悬浮控制窗...悬浮窗的文章可以看以前《Android实现可移动的悬浮窗》这篇文章,这次直接把当时的代码复制过来了,用Java写的,所以也不再重新造轮子了,只不过这次的Sevice我改为使用JobService了。...resScope.launch { try { Log.i("job", "StartJob1") // 当前界面没有悬浮窗显示...,则创建悬浮窗。...cancel(JOBID) } } } Android8.0后还需要开启悬浮窗的上层权限 ,所以在动态申请权限那里还要加上这个开启。
我使用的是小米, 我并没有给 UC 授悬浮窗权限, 所以我看到这个悬浮窗时是很震惊的. ?...验证 实际测试了一下, 将 type 设置成 TYPE_TOAST 果然有奇效, 不需要android.permission.SYSTEM_ALERT_WINDOW权限就能显示一个悬浮窗....关于针对源代码的分析, 请看 Android 悬浮窗使用 TYPE_TOAST 的小结 实测效果 我之前写的一个 app 有悬浮窗播放功能, 支持拖动窗口和点击暂停, 关闭窗口等等, 在 4.4.4 上实测功能正常...(并且给一个 Activity 的话按下 HOME 键会出现看不到桌面上的图标异常情况)TYPE_TOAST: 不属于悬浮窗, 但有悬浮窗的功能, 缺点是在 Android2.3 上无法接收点击事件TYPE_SYSTEM_ALERT...: 属于悬浮窗, 但是会被禁止 尾声 现在我们都知道了如何在不申请权限的情况下显示悬浮窗, 我相信以中国 Android 开发者的脑洞, 一定会有很多有趣或恶心的功能被开发出来, 一方面我自己觉得这个东西很有用
悬浮窗一般不设置该标志,因为一旦设置该标志,将无法拖动悬浮窗。...静态悬浮窗 悬浮窗有点类似对话框,它们都是独立于Activity页面的窗口,但是悬浮窗又有一些与众不同的特性,例如: 1、悬浮窗是可以拖动的,对话框则不能; 2、悬浮窗不妨碍用户触摸窗外的区域,...在实际开发中,悬浮窗的展示内容是变化的,毕竟一个内容不变的悬浮窗对用户来说没什么用处。...下面是实时流量悬浮窗的页面代码: import android.app.Activity; import android.content.Intent; import android.os.Bundle...下面是实时股指悬浮窗的页面代码: import android.app.Activity; import android.content.Intent; import android.os.Bundle
TrafficMonitor是一款功能实用的电脑网络速度监控悬浮窗;它主要是在Windows的操作系统上使用,可以对您的电脑网络速度,CPU的使用情况、内存的使用率等查看,并且还可以将悬浮窗固定在任务栏里面
悬浮窗一般用来显示当前脚本运行的状态和信息,是最为重要的人机交互方式。悬浮窗在脚本停止运行时会自动关闭,因此,要保持悬浮窗不被关闭,需要用一个空的setInterval来实现。...创建和关闭悬浮窗 1.1....FloatyWindow对象 悬浮窗对象,可通过ID获取悬浮窗界面上的控件。...关闭悬浮窗; FloatyWindow.close() 如果悬浮窗已经是关闭状态,将不执行任何操作,被关闭后的悬浮窗不能再显示。 2.9. ...关闭悬浮窗; FloatyRawWindow.close() 如果悬浮窗已经是关闭状态,则此函数将不执行任何操作,被关闭后的悬浮窗不能再显示。 3.9.
背景 游戏内的悬浮窗通常情况下只出现在游戏内,用做切换账号、客服中心等功能的快速入口。...本文将介绍几种实现方案,以及我们踩过的坑 1、方案一:应用外悬浮窗+栈顶权限/生命周期回调 通常实现悬浮窗,首先考虑到的会是要使用悬浮窗权限,用WindowManager在设备界面上addView实现(...UI层级较高,应用外显示) 1、弹出悬浮窗需要用到悬浮窗权限 悬浮窗权限--> android:name="android.permission.SYSTEM_ALERT_WINDOW"/> 2、判断悬浮窗游戏内外显示...但是这种方案有如下缺点: 1、适配问题,悬浮窗权限在不同设备上由于不同产商实现不同,适配难。
介绍本示例使用position绝对定位实现应用内悬浮窗,并且通过animateTo结合curves动画曲线实现悬浮窗拖拽跟手和松手吸附边缘的弹性动画效果。...效果图预览使用说明按住悬浮窗可以拖拽,松开后悬浮窗自动靠左或靠右,如果悬浮窗超出内容区上下边界,自动吸附在边界位置。...aboutToAppear中获取应用窗口尺寸,使用窗口宽度减去悬浮窗宽度和右边距让悬浮窗初始靠右。...Cause:' + JSON.stringify(exception)); }悬浮窗组件添加onTouchEvent回调,在手指按下时保存触摸点与悬浮窗左上角的偏移量offsetX和offsetY,用于移动时悬浮窗位置的计算...y轴偏移和设备顶部状态栏高度 }) break; }手指抬起时,通过判断悬浮窗中心在水平方向位于窗口中心的左侧或右侧设置悬浮窗靠左或靠右,如果悬浮窗超出内容区上下边界,则将悬浮窗设置在边界位置
领取专属 10元无门槛券
手把手带您无忧上云