Android 悬浮窗的使用(1)
悬浮窗功能基本代码:
//创建悬浮窗的图片,这里当然也可以用自定义的View,这里之用了简单的图片var imageView = ImageView(this)imageView.setImageResource(R.mipmap.ic_launcher)var layoutParams = WindowManager.LayoutParams()var windowManager: WindowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManagerlayoutParams.format = PixelFormat.RGBA_8888layoutParams.flags =WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL or WindowManager.LayoutParams.FLAG_NOT_FOCUSABLElayoutParams.gravity = Gravity.TOP or Gravity.LEFTlayoutParams.width = WindowManager.LayoutParams.WRAP_CONTENTlayoutParams.height = WindowManager.LayoutParams.WRAP_CONTENTlayoutParams.x = 200layoutParams.y = 200windowManager.addView(imageView, layoutParams)
如果有报错,那可能是没有设置悬浮窗的类型的原因。
只要在windowManager.addView 之前添加悬浮窗类型的代码即可
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION} elselayoutParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT
当然,有的需求可能不太满足,比如说我想要在桌面也显示的话怎么办?
那就得需要用户自己到应用设置里面去打开后台弹出界面了。
/*之前的 layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION或者是 WindowManager.LayoutParams.TYPE_SYSTEM_ALERT修改成 WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY同时,需要在AndroidManifest.xml文件中申请悬浮窗权限<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />*/layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAYvar intent = Intent()intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)//跳转到应用信息界面intent.action = Intent.ACTION_AUTO_REVOKE_PERMISSIONS//跳转到哪个应用的信息界面intent.data = Uri.fromParts("package", packageName, null)startActivity(intent)
悬浮窗暂时只写这么多,如果后面还有的话我还是会补充的。
有问题的话可直接评论。
Android 悬浮窗的使用(1)相关推荐
- android悬浮窗语音识别demo
带有android悬浮窗的语音识别语义理解demo 如发现代码排版问题,请访问CSDN博客 Android桌面悬浮窗实现比较简单,本篇以一个语音识别,语义理解的demo来演示如何实现android悬浮 ...
- Android 悬浮窗功能的实现
前言 我们大多数在两种情况下可以看到悬浮窗,一个是视频通话时的悬浮窗,另一个是360卫士的悬浮球,实现此功能的方式比较多,这里以视频通话悬浮窗中的需求为例.编码实现使用Kotlin.Java版本留言邮 ...
- Android悬浮窗的简单实现
1. 前言 现在很多应用都有小悬浮窗的功能,比如看直播的时候,通过Home键返回桌面,直播的小窗口仍可以在屏幕上显示.下面将介绍下悬浮窗的的一种简单实现方式. 2.原理 Window我们应该很熟悉,它 ...
- Android悬浮窗的实现
Android悬浮窗的实现 *本篇文章已授权微信公众号 guolin_blog (郭霖)独家发布 本文也发布于本人的知乎文章:https://zhuanlan.zhihu.com/p/39421112 ...
- Android悬浮窗原理解析(Window)[源码]
悬浮窗,在大多数应用中还是很少见的,目前我们接触到的悬浮窗,差不多都是一些系统级的应用软件,例如:360安全卫士,腾讯手机管家等:在某些服务行业如金融,餐饮等,也会在应用中添加悬浮窗,例如:美团的偷红 ...
- 安卓java浮层不响应点击事件,Android悬浮窗屏蔽悬浮窗外部所有的点击事件的实例代码...
Android可以在所有应用上方添加View,就是给WindowManager添加一个View,在创建的View的时候可以给这个View设置LayoutParams(android.view.Wind ...
- Android展开悬浮窗功能,Android 悬浮窗 (附圆形菜单悬浮窗)
序言 Android悬浮窗的实现,主要有四个步骤: 1. 声明及申请权限 2. 构建悬浮窗需要的控件 3. 将控件添加到WindowManager 4. 必要时更新WindowManager的布局 一 ...
- android动态获取悬浮窗,Android 悬浮窗实现
Android悬浮窗实现中需要注意的两点是 1.Android 6.0之后的悬浮窗动态申请 2.Window 的type属性在Android8.0前后的适配 public abstract class ...
- Android悬浮窗适配全机型,包含8.0,小米魅族华为悬浮窗权限适配demo看这一篇就够了
机型多杂,适配无法完全兼容,不如换种实现方式,性能比悬浮窗好,不需要权限,效果更好:https://blog.csdn.net/m0_38058826/article/details/10399339 ...
- Android悬浮窗开启 适配所有机型(附源码)
Android悬浮窗开启 适配所有机型(附源码) 1.开启悬浮窗权限 清单文件中添加: <uses-permission android:name="android.permissio ...
最新文章
- 如何在Linux实现自动运行程序
- 程序员面试100题之二:跳台阶问题(变态跳台阶)
- 09-对象的定义方式
- java没有释放内存_java – G1年轻的GC没有释放内存 – 空间耗尽
- c语言队列原理的实现,c印记(十二):队列queue原理与实现
- (JAVA)获取对象
- php中的缓,php中的缓存机制解释
- checkbox修改默认样式
- 关于_beginthreadex、_beginthread和CreateThread
- 关于win10 使用eclipse如何配置环境变量
- Python3下的WIFI密码爆破
- 简单桌面导航html win10,IT之家学院:让你的Win10桌面比macOS还简洁漂亮高大上
- H.264视频压缩标准
- 晶闸管整流桥matlab仿真,整流12脉中频电源MATLAB-Simulink仿真及谐波分析
- linux下载info安装包,Linux软件包安装(rpm、yum、apt-get)
- HDU 1009FatMouse' Trade
- vim tutorial 101 hacks(三)
- WPS编辑器实现自定义小功能
- 使用Python二次开发S3D 查询当前选择元素基本信息
- 内部排序(五)快速排序(上)- 概述与选择枢轴