代码截屏与禁止截屏

 今天看慕课网的视频,其中使用了代码截屏,鉴于一起没有用过特此记录一下下大笑

很简单的几行代码这里我就手敲了不传代码片了


//获取activity最顶层窗口的view

View view=getWindow().getDecorView();

//设置控件允许绘制缓存

view.setDrawingCashEnabled(true);

//获取控件的绘制缓存(快照)

view.buildDrawingCache();

//把获取到的快照转换为Bitmap的图片形式

Bitmap imageResult=view.getDrawingCache();



我们还会遇到不允许截屏的情况

//设置activity不允许截屏

activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kylin系统是一个基于Linux的操作系统,因此可以使用Linux下的截屏工具和系统API来实现截屏禁止。 在C语言中,可以使用X11 Window System提供的API来实现禁止截屏键。具体实现步骤如下: 1. 使用XOpenDisplay()函数打开X11服务器连接。 2. 使用XGrabKey()函数拦截截屏键的按键事件,并指定一个处理函数处理该事件。 3. 使用XMapWindow()函数将窗口映射到屏幕上。 4. 使用XNextEvent()函数循环获取X11服务器上的事件,直到接收到退出事件。 5. 使用XUngrabKey()函数释放截屏键的按键事件。 下面是一个简单的示例代码: ``` #include <X11/Xlib.h> #include <stdio.h> void handle_key_event(Display *display, XEvent *event, XPointer arg) { // do nothing to disable screenshot key } int main() { Display *display = XOpenDisplay(NULL); if (display == NULL) { printf("Can't open display\n"); return 1; } // grab PrintScreen key XGrabKey(display, XKeysymToKeycode(display, XK_Print), Mod1Mask, DefaultRootWindow(display), True, GrabModeAsync, GrabModeAsync); // map a window to screen Window window = XCreateSimpleWindow(display, DefaultRootWindow(display), 0, 0, 1, 1, 0, BlackPixel(display, DefaultScreen(display)), WhitePixel(display, DefaultScreen(display))); XMapWindow(display, window); // loop to receive events XEvent event; while (1) { XNextEvent(display, &event); switch (event.type) { case KeyPress: handle_key_event(display, &event, NULL); break; case ClientMessage: if (event.xclient.data.l[0] == XInternAtom(display, "WM_DELETE_WINDOW", False)) { XUngrabKey(display, XKeysymToKeycode(display, XK_Print), Mod1Mask, DefaultRootWindow(display)); XDestroyWindow(display, window); XCloseDisplay(display); return 0; } break; } } } ``` 在该示例代码中,使用XGrabKey()函数拦截PrintScreen键的按键事件,并指定空的处理函数来禁止该按键。然后创建一个简单的窗口并将其映射到屏幕上。最后循环获取X11服务器上的事件,直到接收到退出事件并释放PrintScreen键的按键事件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值