如何从屏幕截图中排除叠加层?

Posted

技术标签:

【中文标题】如何从屏幕截图中排除叠加层?【英文标题】:How to exclude overlay from screenshot? 【发布时间】:2021-09-24 20:24:17 【问题描述】:

基于this answer,我认为至少存在针对系统应用程序的解决方案(或者可能也在根设备中?)。碰巧我不理解答案 cmets 上链接的代码示例。有人可以逐步解释以实现这一点(如果可能,请提供代码示例)?提前致谢。

【问题讨论】:

这是不可能的。你可以移除你的over但不能管理第三方应用覆盖。 @ImtiyazKhalani,感谢您的评论。我很想知道如何使它完全排除我自己的覆盖。第三方应用程序覆盖对我来说并不重要。 您必须在截屏过程中移除覆盖层? @ImtiyazKhalani,是的。 ... 获取可见屏幕的可绘制对象(根视图),删除不需要的视图,将其转储到位图中然后瞧? 【参考方案1】:

由于androids处理截图的方式,排除覆盖是不可能的。但是,如链接中所述,您可以制作不带叠加层的屏幕截图。

这会导致您的屏幕截图中出现未渲染的洞,而那里只有黑色背景。

如果您愿意,您可以轻松地在拍摄屏幕截图的第二秒将叠加层设为黑色,甚至禁用可见性,以获得干净的屏幕截图。为了给您更详细的答案,我们需要一个更精确的问题,其中包含您如何编写代码的示例和想法。

编辑:

问题在于,理论上您可以深入研究 android 的源代码并更改屏幕截图的行为。但是,您将自己创建一个新的 Android 版本。正如@Hassan Uddin 所说。在你的手机上运行它需要你深入挖掘 androids 的源代码,并且可能在那里找不到任何答案。

【讨论】:

这个长评论可以包含在答案中,除了这部分(如果你想从那个帖子中得到确切的答案,为什么不在那个帖子下面问你是否可以从@那里得到任何帮助reker?他似乎已经达到了你需要知道的程度?)上面,然后删除了。【参考方案2】:

这是不可能的,因为它就像一个安全功能。如果您愿意监视某人的屏幕,那么您已经为时已晚,已经是 2021 年了...操作系统不会让您这样做...您必须改为 MOD 操作系统

【讨论】:

您对我的问题的链接答案了解多少? @Coringa 已经告诉过你了兄弟......如果你以某种方式违反系统软件(例如使用 root 权限),这是可能的,一切皆有可能。>> 顺便说一下,他谈到要查看操作系统source code这里你只能了解它一般是如何工作的...... Android是一个开源操作系统。您的制造商可能已针对您的手机进行了修改,希望您这次得到答案--------【参考方案3】:

您不能从屏幕截图中排除叠加层。如果有叠加层,您可以隐藏或使其透明。你不能处理第三方覆盖。

【讨论】:

This is possible。但不幸的是我和你不知道做。 -1

以上是关于如何从屏幕截图中排除叠加层?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 截图

如何将位图从 Activity 传递给服务

UILabel 的屏幕截图和 UIImageView 中的内容

如何在 MKMapView 中将图钉和地图保持在移动叠加层上方的中心

Winforms (.NET) 的屏幕截图选择器组件

如何截取完整滚动文件的屏幕截图