博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android应用内 代码截屏(获取View快照)和 禁止截屏
阅读量:6833 次
发布时间:2019-06-26

本文共 980 字,大约阅读时间需要 3 分钟。

1. 应用内的代码截屏(获取View的快照)

Android的View类中提供了获取控件绘制缓存的方法,这种截屏的方式仅限于应用内自己的Activity界面,不需要任何权限,严格来说该方法不属于截屏,只是获取某个View控件每次绘制后的快照,代码如下:

截取某一个控件绘制后的快照:

// 获取需要截取快照的控件View view = findViewById(R.id.my_view);// 设置控件允许绘制缓存view.setDrawingCacheEnabled(true);// 获取控件的绘制缓存(快照)Bitmap bitmap = view.getDrawingCache();// 保存截取的快照 bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);

截取应用(Activity)的整个屏幕:

/* * 每个Activity都有一个铺满全屏的顶层View,只需要获取这个View的绘制快照, * 就相当于截取了整个Activity的屏幕,这种方式截取部分包括通知栏,但不包括 * 通知烂上的内容,因为其内容不属于当前的Activity。 */// 获取Activity整个窗口最顶层的ViewView view = activity.getWindow().getDecorView();// 设置控件允许绘制缓存view.setDrawingCacheEnabled(true);// 获取控件的绘制缓存(快照) Bitmap bitmap = view.getDrawingCache(); // 保存截取的快照 bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);

2. 应用内的禁止截屏

APP的某些界面如果不希望用户能够截屏,可以对当前当前的Activity设置一个安全标记,如下:

// 禁止截屏activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

设置该安全标记后,在该Activity界面,无论是系统截屏,还是adb命令获取截屏,都将无法使用(有root权限的不正常情况除外)。

转载地址:http://jrtkl.baihongyu.com/

你可能感兴趣的文章
ubuntu14.04 安装搜狗输入法
查看>>
内省—beanutils工具包
查看>>
[WP8.1UI控件编程]SemanticZoom控件实现分组列表
查看>>
Cycling Label
查看>>
CreateFileMapping使用方法
查看>>
MySQL load data infile
查看>>
TCommThread -- 在delphi线程中实现消息循环
查看>>
Windows内核之线程的调度,优先级,亲缘性
查看>>
按键控制电机显示速度
查看>>
分享工作中遇到的问题积累经验 事务日志太大导致insert不进数据
查看>>
怎样删除windows.old文件
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
线程同步中使用信号量AutoResetEvent
查看>>
软件架构学习小结
查看>>
hessian学习
查看>>
Lua 之 userdata
查看>>
致青春:不虚度,是对青春最好的交代
查看>>
sersync2 实时同步配置
查看>>
mysql 的存储过程调试软件
查看>>
Apache Solr配置
查看>>