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

如何完整的隐藏android activity

android activity 渲染逻辑是个复杂而庞大的系统逻辑, 牵涉到客户端渲染, 系统端渲染, 软件渲染, 硬件渲染, java代码处理逻辑, cpp代码处理逻辑.

写过activity的朋友都清楚, activity渲染是从layout.xml文件开始, 在xml文件里定义了activity使用的各种控件已经他们的布局关系.

系统从读取这份文件开始渲染, 首先解析各个控件的布局关系, 为每个控件分配空间.如果用代码动态修改了这份文件(增加和删除控件,或者修改控件属性), 每次修改都会触发系统重新解析文件, 重新执行后面的逻辑.

当每个控件都分配好空间和位置后, 就会把控制权逐个分配给挂在layout树的每个节点控件了, 进行控件的渲染. 控件渲染有两种模式, 一种是cpu渲染(软件渲染), 一种是gpu渲染(硬件渲染).

cpu渲染,是调用一组特定的cpu画图api, 把内容直接渲染出来. 而gpu渲染是把渲染指令装入到DisplayList列表中, 然后post给gpu渲染线程, 使用gpu高速渲染.

两者渲染方式对比, cpu渲染方式在main thead里把所有的内容都渲染出来了, main thread干的活更多, gpu渲染方式只是在main thread把渲染指令加入到DisplayList, main thread干的活相对教轻, 所以使用gpu渲染方式界面表现地更加流畅.

activity的所有内容都渲染到一个叫surface的对象上, 然后通过native的api, 把这个surface post到android系统服务进程中, 系统服务进程然后把所有客户端post过来的surface按照一定的规则, 合成最终显示的画面, 交给display显示出来.

activity的view树是挂在一个root view的下面, 可以通过activity.getWindow().getDecorView()得到, 如果要隐藏整个activity, 就是要把activity变透明, 让这个activity下面的activity的内容显示到最前面.

如果只调用activity.getWindow().getDecorView().setAlpha(0.0f) 是没有用的, 这样做只是把root view变透明了, 界面上显示的一层全黑的画布.

这层画布是surface的底色, activity所有的内容都这块画布上渲染, 如果只把activity的渲染内容设置成透明, 那么画布的底色就会显现出来, 遮挡了下层activity的内容.

有没有什么方式让surface画布也变透明呢? 有的, 有的,兄弟, 就是调用下面神奇的api:

activity.setTheme(android.R.style.Theme_Translucent_NoTitleBar);//先把activity的主题设置成可透明主题activity.setTranslucent(true);// setTranslucent(true) 把surface画布变成透明

这样做就可以把activity变成完全透明, 下层的activity的内容才能完全无遮挡的显示出来.

http://www.jsqmd.com/news/1128434/

相关文章:

  • 森林火灾识别数据集| 6200张YOLO火灾预警数据集 适用于森林火灾早期预警、无人机巡检与目标检测研究
  • [论文学习]BackdoorLLM:大语言模型后门攻击与防御的综合性基准——深度解析
  • 后端框架选型指南:SpringBoot与主流方案的对比分析
  • 免费解锁B站大会员4K视频下载:终极Python工具指南
  • AgentAegis 智能体安全防御包括: skill投毒、记忆污染、意图对齐、恶意执行、资源耗尽
  • SpringBoot3.x新特性解读与迁移指南
  • 提升开发效率的五个Python工具推荐
  • 外贸ERP怎么选:纯CRM够不够,什么时候非上进出口一体不可
  • 《源纹天书》第一百一十六章至第一百二十章:禁地开启、道之问答、源纹传承、混沌裂缝、虚无大帝的真身
  • picoCTF WebDecode Writeup
  • NLP 标注一致性:数据集质量不是靠人数堆出来
  • 2:IDEA中git的使用--基础操作
  • 2026年温州装修设计大揭秘!哪家口碑好,看完这篇全知道
  • OpenDog V3四足机器人:7天打造智能机器狗的终极指南
  • C++课后习题训练记录Day148
  • AeroScapes数据集实战:从数据解析到PyTorch Dataloader构建
  • eIDAS与中国电子签名标准体系对比:数字信任的法规路径与合规实践
  • 蝶阀/不锈钢阀门/化工阀门/沪工阀门厂家优选指南
  • 项目管理的“三边六拍”!
  • AI专著写作秘籍大公开!AI写专著工具一键生成20万字专著,高效无忧
  • 《欠你的那场婚礼》 台剧|在线观看|电视剧|夸克|下载|豆瓣
  • 纯前端实时事实核查器:用Perplexity API构建浏览器内 claim checker
  • 生成式引擎优化(GEO)实体教培落地实战|南昌少儿美育全域AI语义占位方案
  • 算法优化中的数学建模与理论界限分析的技术7
  • 2026年GEO贴牌代理源码解构:核心状态机深度拆解
  • 便携呼吸机/全自动呼吸机/双水平呼吸机/单水平呼吸机厂商
  • 北京通州有哪些学画画的培训班,它们的口碑情况如何?
  • 中小学课桌椅/报告厅座椅/大学教室桌椅/校园课桌椅/高校阶梯教室排椅公司优选
  • 没有长期记忆,Agent 谈何持续进化?一图看懂火山 Mem0:解锁 Agent 持续学习与进化之路
  • JDBC 完整笔记 + 核心 API 详解(入门到实战)