该功能支持所有控件的截图,但只能截取屏幕显示部分。

1.截图功能相关的方法:

  • setDrawingCacheEnabled:设置绘图缓存的可用状态。true表示打开,false表示关闭。

  • isDrawingCacheEnabled:判断该控件的绘图缓存是否可用。

  • setDrawingCacheQuality:设置绘图缓存的质量。

  • getDrawingCache:获取该控件的绘图缓存结果,返回值为Bitmap类型。

  • setDrawingCacheBackgroundColor:设置绘图缓存的背景颜色。大家可能会奇怪为何要提供该方法,因为绘图缓存默认背景色是黑色,如果不提前设置缓存的背景色,截图的结果就是黑乎乎一片,所以需要将背景色设置为默认颜色(通常为白色)。

2.截图功能步骤

<1>开始截图前,先调用setDrawingCacheEnabled方法,设置绘图缓存为可用状态。注意该方法在一开始就得调用,因为先开启绘图缓存,之后变更的界面才会记录到缓存中;如果先变更界面再开启绘图缓存,缓存里面就是空的。

<2>调用getDrawingCache方法获取缓存中的图像数据。

<3>完成截图,延迟若干毫秒后调用setDrawingCacheEnabled方法关闭绘图缓。如果接下来还要截图,就再次调用setDrawingCacheEnabled方法重新开启绘图缓存。

3.代码示例

基于上一篇《Android聊天室或者文字直播间效果,附带TextView滚动到最下边和实时追加字符串方法》中代码进行修改

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:id="@+id/tv"android:layout_width="match_parent"android:layout_height="100dp"android:gravity="left|bottom"android:layout_marginTop="100dp"android:lines="8"android:maxLines="8"android:scrollbars="vertical"android:text="快讯红色\n预警超\n强台风\n莫兰蒂\n即将\n登陆请\n居民关\n紧门窗备足粮草做好防汛救灾准备"/><Buttonandroid:id="@+id/bt"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="添加文字"/><Buttonandroid:id="@+id/bt2"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="截图"/><ImageViewandroid:id="@+id/iv"android:layout_width="200dp"android:layout_height="200dp"android:scaleType="fitXY"/>
</LinearLayout>

java代码

public class MainActivity extends AppCompatActivity {private TextView tv;private Button bt;private Button bt2;private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");private Handler handler;private ImageView iv;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);tv = findViewById(R.id.tv);bt = findViewById(R.id.bt);bt2 = findViewById(R.id.bt2);iv = findViewById(R.id.iv);handler = new Handler();tv.setMovementMethod(new ScrollingMovementMethod());tv.setDrawingCacheEnabled(true);bt.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {tv.append("\n哈哈哈 "+simpleDateFormat.format(System.currentTimeMillis()));int scrollAmount = tv.getLayout().getLineTop(tv.getLineCount())- tv.getHeight();if (scrollAmount > 0) {tv.scrollTo(0, scrollAmount);}else {tv.scrollTo(0, 0);}}});bt2.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {Bitmap bitmap = tv.getDrawingCache();iv.setImageBitmap(bitmap);handler.postDelayed(new Runnable() {@Overridepublic void run() {tv.setDrawingCacheEnabled(false);tv.setDrawingCacheEnabled(true);}},200);}});}
}

Android截图功能相关推荐

  1. android实现截图功能吗,Android实现拍照截图功能

    本文将向大家展示如何拍照截图. 先看看效果图: 拍照截图有点儿特殊,要知道,现在的Android智能手机的摄像头都是几百万的像素,拍出来的图片都是非常大的.因此,我们不能像对待相册截图一样使用Bitm ...

  2. android调用截屏功能,调用安卓原生的截图功能

    做app的时候经常会遇到头像上传截图这样的功能,截取一个图片网上有不少demo,很复杂,其实安卓本身就自带了一个强大好用的截图功能,比如更换壁纸的时候,你就会看到这个截图功能,下面是调用系统的截图功能 ...

  3. android实现截图功能

    原文地址:http://blog.csdn.net/hk_256/article/details/7306590 ,转载请注明出处 一.基本介绍 在Android 4.0 之前,Android手机上如 ...

  4. android 6.0在关机界面添加截图功能

    在关机界面添加截图功能,可以参考如下步骤修改实现: 1.步骤 1.1 <string name="global_action_screenshot_xxxx">scre ...

  5. Android 实现截图功能

    本截图功能的实现思路是通过反射调用系统的截图功能,在service中执行,可以截取任何界面.放出一个demo,截取图片保存在U盘,核心代码在screenshot方法. 本文参考了该文章 public ...

  6. 安卓10自带录屏_谷歌终于在Android 11版里原生支持屏幕录像功能(即录屏)和长截图功能...

    在谷歌面向开发者们推出 Android 11 开发者预览版后,关于新版本的越来越多的新增功能正在被逐渐发掘出来. 例如最新被发掘出来的新功能是谷歌终于添加所有用户期待已久的屏幕录像功能,同时还支持进行 ...

  7. android截取网页图片,安卓版谷歌浏览器很快将获得滚动截图功能 可以用来截取整个网页...

    截图功能对用户来说应该是非常常用的功能,然而有时候截取网页时可能需要我们进行多次截图再拼接截图图片. 为解决这种问题现在已经有些软件提供滚动截图功能,滚动截图可帮助用户一次性将整个网页内容截图无需拼接 ...

  8. android easyplayer截屏,EasyWasmPlayer H265播放器是如何实现视频截图功能的?

    在我们做视频开发的过程中,会遇到不少需求,其中视频截图就是一个比较常见的需求,因此TSINGSEE青犀视频不管是在设计视频平台还是视频播放器的时候,我们都会在原有开发的基础上对视频截图进行一些功能拓展 ...

  9. Android P功能

    Android P Preview was launched a few months back and we're still in awe of the new features that hav ...

  10. ijkplayer 录像 截图功能,支持rtsp rtmp http 流媒体

    ijkplayer 录像 截图功能,支持rtsp rtmp http 流媒体 直接下载Demo看 或者直接去我的github地址下载(现在csdn需要积分好可恶),github免费下载,不需要积分,帮 ...

最新文章

  1. J2EE 中的服务器 tomcat6.0 配置
  2. 华为云总裁郑叶来:易获取、用得起、方便用的算力是人工智能发展的关键
  3. 用Tcl定制Vivado设计实现流程
  4. 设置MySQL服务的字符集为uft8
  5. java代码调用python_java 直接调用python脚本,并传递参数代码实例|chu
  6. EntityFramework进阶——事务
  7. mysql outfile raw_解决 Mysql outfile 的报错问题!
  8. python rq asyncio_python异步IO-asyncio
  9. type=file 把默认的未选择文件换成别的_PS文件的新建、存储与格式
  10. Communicator 2007的一些设置
  11. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_09 序列化流_3_对象的反序列化流_ObjectInputStream...
  12. 阿里云CentOs 6.4 yum报错Couldn't resolve host'xx
  13. Atitit 互联网行业如何提升收入 经济学概论读后感 attilax总结 1. 收入“四 位一体”的理论(工资、利润、利息、地租) 1 2. 提升收入,就要提升这4个象限的收入 1 3. 如
  14. mysql索引平衡树hash_MySQL B+树索引和哈希索引的区别
  15. python模拟浏览器教程_Python使用win32com实现的模拟浏览器功能示例
  16. 文献速递 | 通过m6A RNA甲基化修饰调节癌症中的端粒稳态和基因组稳定性
  17. 系统架构设计笔记(80)—— .NET
  18. MIPI DSI-2 协议解析
  19. STM32F407VET6
  20. 成语归类大全(留着,孩子有用的)

热门文章

  1. 3D打印软件 PrusaSlicer切片软件
  2. 职称计算机考试有哪些题,职称计算机考试题库(-套有答案).doc
  3. ZipEntry的使用
  4. 登录会员管理系统java_huiyuan 会员管理,一款基于java web 的 软件,可以实现登录、注册、充值功能。 Jsp/Servlet 262万源代码下载- www.pudn.com...
  5. 直立车控制之PID算法分析
  6. android通过经纬度获取地址,android之location 根据接口获取经纬度信息
  7. 微软云计算-私有云概述
  8. Java 流行的工作流引擎
  9. android qq隐藏功能,90﹪的人都不知道QQ这些隐藏的功能!
  10. Mac上编译mingw