Android实现截屏的方法
Android要实现屏幕截屏,可以有很多方法,这里主要介绍两种常用的方法。一种是通过DrawingCache来生成截图,另外一种是通过Canvas,将View的内容绘制到Bitmap上。
一、首先来看DrawingCache的使用方法。View控件上的内容可以通过cache机制保存为bitmap, 主要有以下方法:
void setDrawingCacheEnabled(boolean flag),
Bitmap getDrawingCache(boolean autoScale),
void buildDrawingCache(boolean autoScale),
void destroyDrawingCache()
首先要通过setDrawingCacheEnable方法开启cache,然后再通过getDrawingCache方法得到cache所保存的view对应的图片。buildDrawingCache方法可以不用调用,因为调用getDrawingCache方法时,若果cache没有建立,系统会自动调用buildDrawingCache方法生成cache。当调用setDrawingCacheEnabled方法设置为false, 系统也会自动把原来的cache销毁。
如果使用DrawingCache,则对要截图的View有一个要求:View本身已经显示在界面上。如果View没有添加到界面上或者没有显示过,则buildDrawingCache会失败。这种方式比较适合对应用界面或者某一部分的截图。步骤很简单:
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
view.setDrawingCacheEnabled(false);
如果需要对整个页面都截图,可以通过Activity的根视图来实现截屏,具体方法是调用getWindow().getDecorView(),然后通过对根View进行DrawingCache的相应操作来实现截屏。
二、 使用Canvas绘制的方式相对更简单一些,只需要三步就可以完成。
1、创建一个Bitmap对象作为绘制目标。
2、将Bitmap传递给Canvas做参数作为画布。
3、调用View的draw()方法将View的内容绘制的Canvas上。
具体的代码是这样子的:
Bitmap bitmap = Bitmap.createBitmap(mWidth, mHeight, Bitmap.Config.RGB_565);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
欢迎关注我的公众号一起交流学习
Android实现截屏的方法相关推荐
- android 截长图 方法,Android实现截屏与截长图功能
本文实例为大家分享了Android实现截屏与截长图功能展示的具体代码,供大家参考,具体内容如下 Demo在GitHub的地址:ScreenShoot 在Android开发中,有时候会遇到需要截屏分享到 ...
- android webview 截图,Android获取webView快照与屏幕截屏的方法 -电脑资料
前段时间做的一个书店项目其阅读模块中用到了WebView + js,今天把WebView这块用到的几个特性记录下, 其主要用到了webView的快照与屏幕的截屏.部分代码如下: [html] /** ...
- Android实现截屏和截长图功能的几种方法
一般情况下各种型号的手机都会有自带的截屏功能,也会有诸如"开关机键+音量键"的截屏快捷键,只要手机是亮屏状态,都会将手机屏幕的可视区域(包含状态栏)全部截取下来. 如果开发中想要调 ...
- Android车载设备截屏方法
现象: 现有Android平板电脑一台,是使用在公交车上的. 1.此设备没有电源键和音量键,所以也就没办法直接用传统的方法来截屏 2.安装易截屏.截屏大师等截屏软件,使用悬浮窗截屏时,也打不开悬浮窗截 ...
- Android系统截屏的实现(附代码)
1.背景 写博客快两年了,写了100+的文章,最火的文章也是大家最关注的就是如何实现android系统截屏.其实我们google android_screen_shot就会找到很对办法,但那些都是很多 ...
- android后台截屏实现(2)--screencap源码修改
首先找到screencap类在Android源码中的位置,/442/frameworks/base/cmds/screencap/screencap.cpp. 源码如下: [cpp] view pla ...
- android长截屏代码,android长截屏原理及实现代码
android长截屏原理及实现代码 发布时间:2020-08-31 06:55:16 来源:脚本之家 阅读:158 作者:Android笔记 小米系统自带的长截屏应该很多人都用过,效果不错.当长截屏时 ...
- Android手机截屏
对于android手机截屏,据我所知,现在主要有三种方法. 第一种,通过DDMS. 把手机连接上电脑,运行DDMS,选中你的手机设备,然后点击菜单"设备"->"Sc ...
- android关于截屏,关于android截屏知识的学习
最近要做手机截取当前屏幕的开发,发了大半天时间在网上找了很多资料,终于有了一个大概的头绪和思路,若有问题望指点,谢谢! 目前而言个人了解android有三种截屏方法: 1.android SDK提供的 ...
最新文章
- MVP模式的相关知识
- ElasticSearch教程——汇总篇
- LBE 隐私卫士原理分析
- Linux shell 变量 数学 运算
- 这或许是实现重试最优雅的姿势了!
- 云计算呼叫中心_SaaS云呼叫中心系统只用于销售或客服?
- CSDN博客中删除空白代码块
- 实验三:凸包(输入点坐标计算凸包坐标)
- 深入React v16新特性(二)
- js获取ISO8601规范时间,使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ
- python3.6安装步骤-Python 3.6.6安装教程(附安装包) | 我爱分享网
- 天敏的SDK2000
- 博图程序的归档和恢复
- 怎么能把Excel数据导入到这个水经注软件里?
- mapreduce 论文(中文翻译)
- Steam CMD是什么?Steam CMD怎么用?
- [源码解析] PyTorch 流水线并行实现 (6)--并行计算
- 02 【ArcGIS JS API + eCharts系列】实现二、三维迁徙图的绘制
- Verilog HDL语法提纲
- JavaScript事件——event对象事件冒泡 阻止默认行为事件捕获