Android 请问如何实现截屏功能?

2016-11-26 16:15:43 +08:00
 pcatzj

View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); view.getDrawingCache();

我本来时通过这种简单的方法来获取应用截图,但是现在发现一个问题,就是这个方法截取不了程序中的 PopupWindow ,所以请问还有什么截图的方法吗?我可以调用系统的截图吗?如果可以,那要怎么操作呢?

5764 次点击
所在节点    Android
18 条回复
q397064399
2016-11-26 18:30:25 +08:00
读写 linux 的 /dev/下的图形设备 网上有,貌似需要 ADK
q397064399
2016-11-26 18:31:02 +08:00
q397064399
2016-11-26 18:32:19 +08:00
不用 ADK 搞错了,很多年前,玩安卓的时候 收藏的,
busymilk
2016-11-26 18:32:50 +08:00
直接用 view 的 draw ,传进一个 canvas ,就行了
q397064399
2016-11-26 18:33:56 +08:00
上 github 找个成熟的,只要是用 /dev/下设备读的 就是全屏截图
Cabana
2016-11-26 19:47:22 +08:00
6.0 以上 有个新的录屏 api 可以用,不用 root
pcatzj
2016-11-26 19:59:21 +08:00
@busymilk 关键这个 view 怎么获得呢, decorView 不包括 PopupWindow 啊
pcatzj
2016-11-26 19:59:41 +08:00
@Cabana 那 6.0 以下的能兼容吗
srx1982
2016-11-26 20:04:05 +08:00
@pcatzj 显然不能
pcatzj
2016-11-26 20:05:34 +08:00
@srx1982 那没办法, 6.0 起步太高了,只能再找别的办法了
Jabin
2016-11-26 21:36:33 +08:00
@pcatzj 是 5.0 不是 6.0. meidaprojection
GhostFlying
2016-11-26 21:41:57 +08:00
popup window 的 view 还不是你自己的。。一样可以 draw 啊,读取 /dev 下的确可行,实际上系统的截图也是这么实现的(严格来说系统调用的某个命令是这么实现的),但估计需要 root 权限。

MediaProjection API 是好东西, 5.0 可用,但是提醒下,这个 API 使用需要用户显式弹窗授权,以及默认情况下每次都要重新授权。
pcatzj
2016-11-26 21:58:49 +08:00
@Jabin 对,我看到了,但是 5.0 之下要怎么处理啊
pcatzj
2016-11-26 22:00:22 +08:00
@GhostFlying 难道我还在每个 activity 里面把 popupWindow 合并进去?那我不是要在每个 activity 里面写一套?
GhostFlying
2016-11-26 22:02:25 +08:00
@pcatzj 你不能 act draw 到 canvas 上,然后 popup window 再 draw 覆盖上去么。。
pcatzj
2016-11-26 22:54:20 +08:00
@GhostFlying 关键是要怎么获取界面的 popupWindow 或者 dialog 呢?不是一个界面的截屏,是整个 app 的截屏
Jabin
2016-11-28 13:43:47 +08:00
@pcatzj 5.0 下就没必要了,市场份额很小了,就不支持了,实在要支持的话,也只能支持已 root 用户
pcatzj
2016-11-28 14:41:08 +08:00
@Jabin 且不管 5.0 以下的份额是不是真的很小。因为说了这是个内部应用,员工的手机都是公司发的,很多还是几年前的, 5.0 以下有很多

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/323488

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX