Android利用反射机制调用截屏方法和获取屏幕宽高的方法
程序员文章站
2022-04-16 11:55:02
想要在应用中进行截屏,可以直接调用 view 的 getdrawingcache 方法,但是这个方法截图的话是没有状态栏的,想要整屏截图就要自己来实现了。还有一个方法可以调用系统隐藏的 screens...
想要在应用中进行截屏,可以直接调用 view 的 getdrawingcache 方法,但是这个方法截图的话是没有状态栏的,想要整屏截图就要自己来实现了。
还有一个方法可以调用系统隐藏的 screenshot 方法,来进行截屏,这种方法截图是整屏的。
通过调用 surfacecontrol.screenshot() / surface.screenshot() 截屏,在 api level 大于 17 使用 surfacecontrol ,小于等于 17 使用 surface,但是 screenshot 方法是隐藏的,因此就需要用反射来调用这个方法。
这个方法需要传入的参数就是宽和高,因此需要获取整个屏幕的宽和高。常用的有三种方法。
获取屏幕宽高
方法一
这个方法会提示过时了,推荐后边两种。
方法二
方法三
反射调用截屏方法
最后返回的 bitmap 对象就是截取得图像了。
需要的权限
调用截屏这个方法需要系统权限,因此没办法系统签名的应用是会报错的。
到此这篇关于android利用反射机制调用截屏方法和获取屏幕宽高的方法的文章就介绍到这了,更多相关android 反射调用截屏方法内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
上一篇: Shell(())实现对整数进行数学运算
下一篇: Android中切换到主线程执行的方法