Android 任意区域截屏

article/2025/9/15 11:41:09

1、全屏截图

Android其实可以做到任意区域截屏,不过我们先来看看整个屏幕截图代码,相信大家很熟悉,代码如下

View decorView = activity.getWindow().getDecorView();
decorView.setDrawingCacheEnabled(true);
view.buildDrawingCache();
//获取屏幕整张图片
Bitmap bitmap = decorView.getDrawingCache();

上述代码中的bitmap就是当前屏幕的截图的bitmap,获取bitmap后大家自行处理自己业务就可以了。。。


2、区域截图

法1:View.getDrawingCache()

关键代码如下:

 view.setDrawingCacheEnabled(true);view.buildDrawingCache();Bitmap bitmap = view.getDrawingCache();

注意:如果你的view恰好是textview且恰好你没有给它设置背景,那么很不幸你获取的bitmap看到的是黑色的,它并不是你所期望的那样哦,解决方案点它

其实还有另外一种方法就是,从全屏图片中裁剪中我们需要的图片,告诉系统裁剪图片的起始坐标以及的大小,参见下面方法。


法2:Bitmap.createBitmap (Bitmap source, int x, int y, int width, int height)

这里写图片描述

从官方文档来看,source代表原始的图片;(x,y)代表从source图片中起始点开始裁剪,width,height表示裁剪图片的大小。

/*** * @param view 需要截取图片的view* @return 截图*/private Bitmap getBitmap(View view) throws Exception {View screenView = getWindow().getDecorView();screenView.setDrawingCacheEnabled(true);screenView.buildDrawingCache();//获取屏幕整张图片Bitmap bitmap = screenView.getDrawingCache();if (bitmap != null) {//需要截取的长和宽int outWidth = view.getWidth();int outHeight = view.getHeight();//获取需要截图部分的在屏幕上的坐标(view的左上角坐标)int[] viewLocationArray = new int[2];view.getLocationOnScreen(viewLocationArray);//从屏幕整张图片中截取指定区域bitmap = Bitmap.createBitmap(bitmap, viewLocationArray[0], viewLocationArray[1], outWidth, outHeight);}return bitmap;}

上述代码只要传入你需要截取的图的view就可以返回对应的bitmap,也不需要管它是textview且有没有设置背景,是不是很方便?


http://chatgpt.dhexx.cn/article/xVbnxVOS.shtml

相关文章

snipaste 固定位置截屏

原文参考: snipaste怎么固定位置截图,如何统一大小截图 一、电脑点击【snipaste】,或者点击键盘的“F1”。 二、在图片,根据自己的需求,画出截图的位置和大小,比如:本篇是500*296。 三、点击右…

JavaScript实现浏览器特定区域截屏和下载功能

JavaScript实现浏览器特定区域截屏功能 需求介绍尝试一:使用Jtopo.js自带的保存图片方法(不能对资源进行下载)尝试二:对saveImageInfo进行改写(功能能用,但是会因为跨域问题污染canvas)&#xf…

Unity中的截图方法(包括全屏截图、区域截图、Camera截图和摄像头截图)

Unity中的截图方法(包括全屏截图、区域截图、Camera截图和摄像头截图) Application.CaptureScreenshotScreenCapture Texture2D.ReadPixels视口截图RenderTexture(Camera截图)WebCamTexture(摄像头截图、照相&#xff…

实现区域截图功能

利用QQ或微信自带的截图功能实现区域截图。 在腾讯安装目录下找到PrScrn.dll,并将它放在需要的位置, 将D:/PrScrn.dll修改为你的目录。 如果在maya里面直接使用该代码 import os,subprocess from PySide2.QtWidgets import QApplication clipboard …

小米手机怎么截屏?小米手机区域截屏

小米手机怎么截屏?手机的截屏其实都是差不多的,基本上都是三指向下滑动而达到截屏效果的,但基本都是全屏截图。小米手机区域截屏怎么做?如果想要做到任意位置的那种区域块截屏的话,该怎么做?下面就来看看吧…

浏览器截图方法(长截图、node截图、指定区域截图)

1.打开需要截屏的页面,按键盘上的F2(或者CtrlShiftI)打开浏览器控制台 2.CtrlshiftP进入搜索框,输入“screen”: 这里有四种截图模式,点击需要的截图方式即可截取图片。

Windows关闭指定端口命令

假设要关闭端口号为3003,使用下面的命令,查出此端口号对应的PID netstat -ano|findstr 3003 上图红框内的 22876 就是3003端口对应的PID,再使用下面的命令就可以关闭这个端口了 taskkill /PID 22876 /F

Linux关闭端口

netstat -anp | grep xxx //查看端口是否被占用kill -9 10762 //即可关闭端口

linux开放端口和关闭端口

centos6: 关闭防火墙:service iptables stop 开启防火墙:service iptables start 防火墙状态:service iptables status 永久关闭:chkconfig iptables off 永久开启:chkconfig iptables on 方法一(命令): 1. 开放端口命令: /sbin/iptables -I INPUT…

[NLP自然语言处理]谷歌BERT模型深度解析

BERT模型代码已经发布,可以在我的github: NLP-BERT--Python3.6-pytorch 中下载,请记得start哦 目录 一、前言 二、如何理解BERT模型 三、BERT模型解析 论文的核心:详解BERT模型架构 关键创新:预训练任务 实验结果 四、BERT模型…

深度学习:BERT模型

BERT模型 BERT出自https://arxiv.org/pdf/1810.04805.pdf的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder。作为一个Word2Vec的替代者,其在NLP领域的11个方向大幅刷新了精度,可以说是近年来自残…

BERT模型系列大全解读

前言 本文讲解的BERT系列模型主要是自编码语言模型-AE LM(AutoEncoder Language Model):通过在输入X中随机掩码(mask)一部分单词,然后预训练的主要任务之一就是根据上下文单词来预测这些单词,从…

BERT模型的深度解读

一、BERT整体概要 Bert由两部分组成: 预训练(Pre-training):通过两个联合训练任务得到Bert模型微调(Fine-tune):在预训练得到bert模型的基础上进行各种各样的NLP 二、预训练 输入经过bert encoder层编…

BERT从零详细解读:BERT整体模型架构

基础结构-TRM的Encoder BERT使用多个Encoder堆叠在一起,其中bert base使用的是12层的encoder,bert large使用的是24层的encoder。 对于transformer来说,输入包括两个部分: 一部分是input enbedding,就是做词的词向量…

如何计算Bert模型的参数量

BERT是基于transformer结构的预训练模型。具体bert原理介绍,请参考博客:Bert系列解读及改进_&永恒的星河&的博客-CSDN博客_bert系列 求解Bert模型的参数量是面试常考的问题,也是作为算法工程师必须会的一个点。所谓会用并不代表熟悉…

关于Bert模型参数的分布

参数分布 Bert模型的版本如下: BERT-Base, Uncased: 12-layer, 768-hidden, 12-heads, 110M parameters BERT-Large, Uncased: 24-layer, 1024-hidden, 16-heads, 340M parameters BERT-Base, Cased: 12-layer, 768-hidden, 12-heads , 110M parameters BERT-L…

BERT模型原理的详细介绍

文章目录 参考文章1. BERT模型1.1 模型结构1.2 输入表示1.3 预训练任务1.3.1 Task 1:Masked Language Model1.3.2 Task 2:Next Sentence Prediction 1.4 微调(fine-tuning)基于句子对的分类任务基于单个句子的分类任务问答任务命名实体识别 2. 总结 参考文章 【NLP…

BERT和GPT模型简介

1. 引言 从现在的大趋势来看,使用某种模型预训练一个语言模型看起来是一种比较靠谱的方法。从之前 AI2 的 ELMo,到 OpenAI 的 fine-tune transformer,再到 Google 的 BERT、GPT,全都是对预训练的语言模型的应用。 本文将主要介绍…

BERT模型简介

基础架构-Transformer的Encoder: 由下到上,依次三个部分为输入、注意力机制和前馈神经网络 基础的Bert,六个encoder,六个decoder。 输入部分 input token embedding segment embedding position embedding bert预训练的NSP&am…

BERT 模型详解

BERT 结构 上图是 BERT 的结构图,左侧的图表示了预训练的过程,右边的图是对于具体任务的微调过程 BERT 的输入 BERT 的输入可以包含一个句子对 (句子 A 和句子 B),也可以是单个句子。同时 BERT 增加了一些有特殊作用的标志位: …