专栏名称: 鸿洋
你好,欢迎关注鸿洋的公众号,每天为您推送高质量文章,让你每天都能涨知识。点击历史消息,查看所有已推送的文章,喜欢可以置顶本公众号。此外,本公众号支持投稿,如果你有原创的文章,希望通过本公众号发布,欢迎投稿。
目录
相关文章推荐
郭霖  ·  一文了解 Gradle 插件 ·  14 小时前  
今天看啥  ›  专栏  ›  鸿洋

Android Surface截图方法总结

鸿洋  · 公众号  · android  · 2024-08-23 08:35

主要观点总结

本文介绍了Android系统中Surface截图的方法和难点,包括使用PixelCopy、VirtualDisplay等方案,以及如何应对不同版本的Android系统。

关键观点总结

关键观点1: Surface截图的方法和难点

介绍了Android系统中Surface截图的基本方法和遇到的难点,包括使用MediaProjection框架、PixelCopy、VirtualDisplay等方案。

关键观点2: PixelCopy的使用和性能

阐述了PixelCopy的使用方法、性能如何,以及与Bitmap池化的关联。

关键观点3: VirtualDisplay方案

详细介绍了VirtualDisplay方案在Android 7之前版本的使用方法和注意事项。

关键观点4: 引申问题:如何录制副屏

讨论了如何录制副屏的问题,包括scrcpy方案和虚拟屏中转方案等。

关键观点5: Android 11的新特性

简要介绍了Android 11中关于虚拟屏和mirrorSurface的新特性。


文章预览

本文作者 作者: 时光少年 链接: https://juejin.cn/post/7398748051878084648 本文由作者授权发布。 前言 说起Surface截图,很多人一个惯性思维是使用MediaProjection框架,但是有点杀鸡使用宰牛刀的问题,实际上,MediaProjection往往需要申请权限,其录制范围包括第三方app,但是如果是自身app,实际上完全没有必要,仅仅使用DisplayManager创建虚拟屏即可,连权限都不需要申请。 实际上,Android Surface截图实际上不算什么难事,在Android N版本开始,系统就已经提供了PixelCopy类来截取Surface,同时还支持缩放,也就是会根据传入的Bitmap大小进行缩放,这种方式可以辅助我们实现画面调整。 1 关于录屏 在之前一篇文章中我们提到过,录制自身屏幕实际上也有最简单的方法,技术上就是使用 DecorView#draw 方法将UI绘制到Bitmap上,然后再将Bitmap绘制到 android.media.MediaCodec#createInpu ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览