当前位置: 首页 > news >正文

android之WindowManager悬浮框

文章目录

  • 阐述
  • 悬浮框的实现
  • AndroidManifest配置
  • 使用方法

阐述

Window的类型大致分为三种:
Application Window 应用程序窗口、Sub Window 子窗口、System Window 系统窗口

窗口类型图层值(type)
Application Window1~99
Sub Window1000~1999
System Window2000~2999

图层对应的type值越大,Z轴排序越靠前。

悬浮框的实现

主要代码如下所示:

    private void testWindowManager() {WindowManager windowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE);WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();View view = LayoutInflater.from(mContext).inflate(R.layout.wm_test, null);// 设置图片的格式,效果为背景透明layoutParams.format = PixelFormat.RGBA_8888;// 如果x,y的值有效果,则需要设置LayoutParams.gravity属性layoutParams.x = 350;layoutParams.y = 50;// 布局宽高的设置,这里的值为px,如果需要使用dp则需要转化layoutParams.width = 200;layoutParams.height = 220;// 窗口显示的默认起始位置layoutParams.gravity = Gravity.TOP | Gravity.START;// 图层的类型layoutParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;// FLAG_LAYOUT_IN_SCREEN 将窗口放置在整个屏幕中,忽略父窗口的任何约束。layoutParams.flags = WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN| WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL| WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;windowManager.addView(view, layoutParams);}

布局文件wm_test.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:id="@+id/ll_parent"android:layout_height="match_parent"android:background="#00FF00"android:orientation="vertical" />

AndroidManifest配置

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />

1.如果应用是通过platform平台sign的,那么可以直接使用该特殊权限,系统默认是“允许显示在其他应用的上层”;
2.普通的应用是需要通过在设置中打开“允许显示在其他应用的上层”的开关才可正确显示悬浮框,主要的代码如下所示:

// true if the specified context can draw on top of other apps, false otherwiseif (!Settings.canDrawOverlays(mContext)) {Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION, Uri.parse("package:" + getPackageName()));startActivityForResult(intent, 1);}

使用方法

// 添加
public void addView(View view, ViewGroup.LayoutParams params);
// 更新
public void updateViewLayout(View view, ViewGroup.LayoutParams params);
// 移除
public void removeView(View view);

相关文章:

android之WindowManager悬浮框

文章目录 阐述悬浮框的实现AndroidManifest配置使用方法 阐述 Window的类型大致分为三种&#xff1a; Application Window 应用程序窗口、Sub Window 子窗口、System Window 系统窗口 窗口类型图层值&#xff08;type&#xff09;Application Window1&#xff5e;99Sub Windo…...

注解详解系列 - @Scope:定义Bean的作用范围

注解简介 在今天的注解详解系列中&#xff0c;我们将探讨Scope注解。Scope是Spring框架中的一个重要注解&#xff0c;用于定义bean的作用范围。通过Scope注解&#xff0c;可以控制Spring容器中bean的生命周期和实例化方式。 注解定义 Scope注解用于定义Spring bean的作用范围…...

仿中波本振电路的LC振荡器电路实验

手里正好有一套中波收音机套件的中周。用它来测试一下LC振荡器&#xff0c;电路如下&#xff1a; 用的是两只中频放大的中周&#xff0c;初步测试是用的中周自带的瓷管电容&#xff0c;他们应该都是谐振在465k附近。后续测试再更换电容测试。 静态电流&#xff0c;0.5到1mA。下…...

Java 面试题:谈谈 final、finally、 finalize 有什么不同?

在 Java 编程中&#xff0c;final、finally 和 finalize 是三个看似相似但用途截然不同的关键字和方法。理解它们的区别对于编写高质量和健壮的代码至关重要。 final 关键字可用于声明常量、方法和类。用在变量上表示变量不可变&#xff0c;用在方法上表示方法不能被重写&#…...

45、基于深度学习的螃蟹性别分类(matlab)

1、基于深度学习的螃蟹性别分类原理及流程 基于深度学习的螃蟹性别分类原理是利用深度学习模型对螃蟹的图像进行训练和识别&#xff0c;从而实现对螃蟹性别的自动分类。整个流程可以分为数据准备、模型构建、模型训练和性别分类四个步骤。 数据准备&#xff1a; 首先需要收集包…...

mongodb嵌套聚合

db.order.aggregate([{$match: {// 下单时间"createTime": {$gte: ISODate("2024-05-01T00:00:00Z"),$lte: ISODate("2024-05-31T23:59:59Z")}// 商品名称,"goods.productName": /美国皓齿/,//订单状态 2:待发货 3:已发货 4:交易成功…...

在 KubeSphere 上快速安装和使用 KDP 云原生数据平台

作者简介&#xff1a;金津&#xff0c;智领云高级研发经理&#xff0c;华中科技大学计算机系硕士。加入智领云 8 余年&#xff0c;长期从事云原生、容器化编排领域研发工作&#xff0c;主导了智领云自研的 BDOS 应用云平台、云原生大数据平台 KDP 等产品的开发&#xff0c;并在…...

Dev Eco Studio设置中文界面

Settings-Plugins-installed-搜索Chinese...

vscode作为markdown LaTeX编辑器

1、安装插件 Markdown All in One 2、下载并安装 prince&#xff1a;Prince - Latest builds Deepin 20.9 对应 debian 10&#xff0c;下载 debian 10 的deb包安装即可 &#xff08;安装后命令在 /usr/bin 下&#xff09; 3、安装插件 Markdown Preview Enhanced&#xff…...

Java中的图形用户界面开发

Java中的图形用户界面开发 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在当今软件开发的世界中&#xff0c;图形用户界面&#xff08;Graphical User Inte…...

android常用知识

透明activity样式&#xff1a; android:theme"android:style/Theme.Translucent.NoTitleBar.Fullscreen"这句代码&#xff0c;当你是建的empty activity project时&#xff0c;默认继承的是AppCompat这个类。所以在AndroidMifext.xml文件中用上述代码会导致程序错误&…...

centos中安装并设置vsftpd

vsftpd是一个可安装在linux上的ftp服务器软件。 一、安装 安装前保证服务器能上互联网。如果不能上网&#xff0c;看看能不能设法利用局域网代理上网。 sudo yum -y install vsftpd二、配置 1、修改配置文件 cd /etc/vsftpd #修改之前记得备份&#xff01;&#xff01;&am…...

C语言入门系列:指针入门(超详细)

文章目录 一&#xff0c;什么是指针1&#xff0c;内存2&#xff0c;指针是什么&#xff1f; 二&#xff0c;指针的声明1&#xff0c;声明指针类型变量2&#xff0c;二级指针 三&#xff0c;指针的计算1&#xff0c;两个指针运算符1.1 *运算符1.2 & 运算符1.3 &运算符与…...

打印水仙花数

题目&#xff1a;打印出所有的“水仙花数”&#xff0c;所谓“水仙花数”是指一个三位数&#xff0c;其各位数字立方和等于该数本身。 例如&#xff1a;153是一个“水仙花数”&#xff0c;因为153 1的三次方 &#xff0b;5的三次方&#xff0b;3的三次方。 程序分析&#xff…...

【SCAU数据挖掘】数据挖掘期末总复习题库简答题及解析——下

1.从某超市顾客中随机抽取5名&#xff0c;他们的购物篮数据的二元0/1表示如下&#xff1a; 顾客号 面包 牛奶 尿布 啤酒 鸡蛋 可乐 1 1 1 0 0 0 0 2 1 0 1 1 1 0 3 0 1 1 1 0 1 4 1 1 1 1 0 0 5 1 1 1 0 0 1 某学生依据这些数据做…...

PyQt学习之简介

1.Python图形界面称为程序的用户交互界面&#xff0c;英文称之为 UI (user interface) Tkinter 基于Tk的Python库&#xff0c;Python官方采用的标准库&#xff0c;优点是作为Python标准库、稳定、发布程序较小&#xff0c;缺点是控件相对较少。 wxPython 基于wxWidgets的Py…...

深入理解前端缓存

前端缓存是所有前端程序员在成长历程中必须要面临的问题&#xff0c;它会让我们的项目得到非常大的优化提升&#xff0c;同样也会带来一些其它方面的困扰。大部分前端程序员也了解一些缓存相关的知识&#xff0c;比如&#xff1a;强缓存、协商缓存、cookie等&#xff0c;但是我…...

K-means聚类算法详解与实战

一、引言 K-means聚类算法是一种无监督学习算法&#xff0c;旨在将数据点划分为K个不同的聚类或群组&#xff0c;使得同一聚类内的数据点尽可能相似&#xff0c;而不同聚类间的数据点尽可能不同。在图像处理、数据挖掘、客户细分等领域有着广泛的应用。本文将通过图文结合的方…...

python数据分析-糖尿病数据集数据分析预测

一、研究背景和意义 糖尿病是美国最普遍的慢性病之一&#xff0c;每年影响数百万美国人&#xff0c;并对经济造成重大的经济负担。糖尿病是一种严重的慢性疾病&#xff0c;其中个体失去有效调节血液中葡萄糖水平的能力&#xff0c;并可能导致生活质量和预期寿命下降。。。。 …...

【前端】 nvm安装管理多版本node、 npm install失败解决方式

【问题】If you believe this might be a permissions issue, please double-check the npm ERR! permissio或者Error: EPERM: operation not permitted, VScode中npm install或cnpm install报错 简单总结&#xff0c;我们运行npm install 无法安装吧包&#xff0c;提示权限问题…...

AI 系统多模型路由与降级架构设计:从流量调度到无感切换的工程实践

背景 / 现象 在一个典型的 AI 应用系统中&#xff0c;主模型&#xff08;如 GPT-4o、Claude 3.5 等&#xff09;通常承担核心推理任务。但在生产环境中&#xff0c;主模型可能因额度耗尽、响应超时、服务不可用或突发限流等原因导致调用失败。此时&#xff0c;用户侧可能表现为…...

ceshi1

进入2026年&#xff0c;企业数字化转型已从“流程数字化”全面转向“认知自动化”。 据最新行业数据显示&#xff0c;企业内部超过85%的数据以PDF、图片、音视频、扫描件等非结构化形式存在。 这些数据曾被视为“沉默的资产”&#xff0c;因为传统OCR或规则引擎难以处理其复杂的…...

Android 11 热点永不关闭的三种实现方案:从源码修改到API调用

Android 11热点持久化方案深度解析&#xff1a;从系统底层到应用层的完整实现 在移动设备开发领域&#xff0c;热点功能的稳定性与持久性一直是开发者关注的重点。Android 11系统默认的热点超时机制&#xff08;10分钟无连接自动关闭&#xff09;虽然考虑了节能因素&#xff0c…...

AltSnap:重新定义Windows窗口管理效率的革命性工具

AltSnap&#xff1a;重新定义Windows窗口管理效率的革命性工具 【免费下载链接】AltSnap Maintained continuation of Stefan Sundins AltDrag 项目地址: https://gitcode.com/gh_mirrors/al/AltSnap 你是否曾经在Windows系统中为繁琐的窗口操作而烦恼&#xff1f;当需要…...

中美Agent生态的路径差异——《重构与崛起——OpenClaw时代的中国Agent产业生态报告》解读三

易观分析&#xff1a;面对OpenClaw掀起的全球AI Agent技术浪潮&#xff0c;中美两国走出截然不同的发展路径。美国生态追求底层框架与协议的原创定义&#xff1b;而中国生态以应用驱动、平台绑定和合规先行为核心逻辑&#xff0c;快速将前沿技术转化为可落地的商业现实。这两条…...

长期使用 Taotoken 过程中对其服务稳定性的主观感受记录

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 长期使用 Taotoken 过程中对其服务稳定性的主观感受记录 1. 背景与使用模式 过去的一个季度&#xff0c;我负责的一个中型项目进入…...

AI大模型大数据隐私安全解决方案

随着人工智能技术飞速迭代&#xff0c;大模型训练、精调与推理愈发依赖海量数据&#xff0c;云上环境的便捷性也让数据隐私保护面临严峻挑战。AI大模型数据处理全流程包含大量敏感信息&#xff0c;一旦泄露、篡改或滥用&#xff0c;将损害用户权益、引发合规风险与信任危机。因…...

深度解析:如何构建基于LCU API的英雄联盟智能助手系统

深度解析&#xff1a;如何构建基于LCU API的英雄联盟智能助手系统 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine Seraphine是一款基于英雄联盟客户端接口&#xff08;LCU API&#xff09;开发的免费开源战绩…...

MySQL 跑得稳不稳,Prometheus 得能抓到这个数据才能说清楚

前言 数据库出问题的时候&#xff0c;最怕的不是故障本身&#xff0c;而是故障发生了却没人知道&#xff0c;等用户反馈过来才去翻日志&#xff0c;慢了不止一拍。 MySQL 本身有一些状态变量能反映运行状况——连接数、QPS、缓冲池命中率、慢查询数量——但这些数据要么存着没…...

ssm中国篮球人才管理系统(10050)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...