当前位置:   article > 正文

静止截屏 android,Android应用内 代码截屏(获取View快照)和 禁止截屏

android防截屏的页面如果获取页面view

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整个窗口最顶层的View

View 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权限的不正常情况除外)。

[Android学习笔记]获取view的尺寸和坐标

对于UI方面很多时候需要获取它的很多信息,具体情况见view的文档 View文档 http://developer.android.com/training/index.html 常用方法:获取vie ...

MFC中Doc类获取View类的方法(SDI)

从view类中获取Doc的方法如下: CYourDoc* pDoc = GetDocument(); 这个函数已经写好,所以无需自己添加,使用时直接利用pDoc即可. 若反过来,从Doc中获取View ...

Android必知必会-获取View坐标和长宽的时机

如果移动端访问不佳,请访问–>Github版 背景 最近要实现一个功能,用到了一些属性动画,需要获取一些View的坐标信息,设计图如下: 这里我使用的是DialogFragment来实现的,可以 ...

Android 禁止截屏、录屏 — 解决PopupWindow无法禁止录屏问题

项目开发中,为了用户信息的安全,会有禁止页面被截屏.录屏的需求. 这类资料,在网上有很多,一般都是通过设置Activity的Flag解决,如: //禁止页面被截屏.录屏 getWindow().add ...

Android平台之不预览获取照相机预览数据帧及精确时间截

在android平台上要获取预览数据帧是一件极其容易的事儿,但要获取每帧数据对应的时间截并不那么容易,网络上关于这方面的资料也比较少.之所以要获取时间截,是因为某些情况下需要加入精确时间轴才能解决问题 ...

Android查缺补漏(View篇)--在 Activity 的 onCreate() 方法中为什么获取 View 的宽和高为0?

在 Activity 的 onCreate() 方法中为什么获取 View 的宽和高为0 ? @Override protected void onCreate(Bundle savedInstanc ...

android学习8——获取view在屏幕上的绝对坐标

获取view在屏幕上的绝对坐标在调试时候非常有用. 看如下代码 public class AbsolutePosActivity extends Activity { @Override public ...

Android 开发 Activity里获取View的宽度和高度 转载

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/744910
推荐阅读
相关标签
  

闽ICP备14008679号