android屏蔽截图功能,安卓实现截图并且保存到内存卡中,activity防止系统截图。...

截图实现:

public static Bitmap snapShotWithoutStatusBar(Activity activity)

{

View view = activity.getWindow().getDecorView();

view.setDrawingCacheEnabled(true);

view.buildDrawingCache();

Bitmap bmp = view.getDrawingCache();

Rect frame = new Rect();

activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);

int statusBarHeight = frame.top;

int width = ScreenUtils.getScreenWidth(activity);

int height = ScreenUtils.getScreenHeight(activity);

Bitmap bp = null;

bp = Bitmap.createBitmap(bmp, 0, statusBarHeight, width,

height

- statusBarHeight);

view.destroyDrawingCache();

return bp;

}

保存bitmap格式的图片至存储卡。

public void savePic(Bitmap bitmap) {

//时间格式​

final String FORMAT_PICTURE_NAME = "yyyyMMdd_HHmmss";

// 将时间作为pic的Name

String picName =

TimeUtil.getCurrentTime(FORMAT_PICTURE_NAME);

picName = "/IMG_" + picName + ".jpg";

// 使用此流读取

ByteArrayOutputStream baos = new ByteArrayOutputStream();

// 第二个参数影响的是图片的质量,但是图片的宽度与高度是不会受影响滴

bitmap.compress(Bitmap.CompressFormat.JPEG, 80, baos);

// 这个函数能够设定图片的宽度与高度

// Bitmap map = Bitmap.createScaledBitmap(bitmap, 400, 400,

true);

// 把数据转为为字节数组

byte[] byteArray = baos.toByteArray();

try {

// 获取输入路径

FileOutputStream fos = new FileOutputStream(Environment

.getExternalStorageDirectory().getAbsolutePath() + picName);

BufferedOutputStream bos = new BufferedOutputStream(fos);

//向file中写数据​

bos.write(byteArray);

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

try {

baos.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

禁止截图:

a4c26d1e5885305701be709a3d33442f.png

​注意:

截图是防止外部截取本activity的图,不是防止自己软件内部截自己的图。有点绕。

你要是在activity中实现了截图的方法,你又在这个页面开启了防截图,结果:

activity中截图方法依旧可以截图,而手机自带的截图软件则不能截图。​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值