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