View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCache(); view.getDrawingCache();
我本来时通过这种简单的方法来获取应用截图,但是现在发现一个问题,就是这个方法截取不了程序中的 PopupWindow ,所以请问还有什么截图的方法吗?我可以调用系统的截图吗?如果可以,那要怎么操作呢?
1
q397064399 2016-11-26 18:30:25 +08:00
读写 linux 的 /dev/下的图形设备 网上有,貌似需要 ADK
|
2
q397064399 2016-11-26 18:31:02 +08:00
|
3
q397064399 2016-11-26 18:32:19 +08:00
不用 ADK 搞错了,很多年前,玩安卓的时候 收藏的,
|
4
busymilk 2016-11-26 18:32:50 +08:00
直接用 view 的 draw ,传进一个 canvas ,就行了
|
5
q397064399 2016-11-26 18:33:56 +08:00
上 github 找个成熟的,只要是用 /dev/下设备读的 就是全屏截图
|
6
Cabana 2016-11-26 19:47:22 +08:00
6.0 以上 有个新的录屏 api 可以用,不用 root
|
12
GhostFlying 2016-11-26 21:41:57 +08:00
popup window 的 view 还不是你自己的。。一样可以 draw 啊,读取 /dev 下的确可行,实际上系统的截图也是这么实现的(严格来说系统调用的某个命令是这么实现的),但估计需要 root 权限。
MediaProjection API 是好东西, 5.0 可用,但是提醒下,这个 API 使用需要用户显式弹窗授权,以及默认情况下每次都要重新授权。 |
14
pcatzj OP @GhostFlying 难道我还在每个 activity 里面把 popupWindow 合并进去?那我不是要在每个 activity 里面写一套?
|
15
GhostFlying 2016-11-26 22:02:25 +08:00
@pcatzj 你不能 act draw 到 canvas 上,然后 popup window 再 draw 覆盖上去么。。
|
16
pcatzj OP @GhostFlying 关键是要怎么获取界面的 popupWindow 或者 dialog 呢?不是一个界面的截屏,是整个 app 的截屏
|