Android快照与截屏

android WebView的快照和截屏网上介绍的已经很多,在这里简单的记录下:

1.快照,一般我们在使用WebView时,网页放大,有一部分不会再屏幕上显示,如果我们想截取整个WebView的显示部分,我们就可以用的这个,代码如下:

/**
     * 快照
     *
     * @param context
     * @return
     */
    private Bitmap captureScreen(Activity context) {      //View snapShot = context.getWindow().getDecorView(); 这个方法也可以试试
        Picture snapShot = mWebView.capturePicture();
        Bitmap bmp = Bitmap.createBitmap(snapShot.getWidth(),
                snapShot.getHeight(), Config.ARGB_8888);
        Canvas canvas = new Canvas(bmp);
        snapShot.draw(canvas);
        return bmp;
    }
    

2.截图,截取屏幕上的显示部分,屏幕之外的自然截取不到,代码如下:

   /**
     * 截取webView可视区域的截图
     * @param webView 前提:WebView要设置webView.setDrawingCacheEnabled(true);
     * @return
     */
  private Bitmap captureWebViewVisibleSize(WebView webView){
       Bitmap bmp = webView.getDrawingCache();
    return bmp;
}

要注意的已用红色部分标记出来。

时间: 2024-11-04 14:07:07

Android快照与截屏的相关文章

Android自己定义截屏功能,相似QQ截屏

由于公司业务需求 须要对一个屏幕进行截屏.但自带的截屏功能是远远不够项目的功能需求 ,我们是做一个画板软件 .须要的像QQ那样截屏之后 ,能够看到我们自己定义的工具.有画笔,button等等 .android自带的功能非常easy,仅仅须要Intent隐式调用就全然足够了.但他是系统的应用 ,界面固定.无法定制改动.实现方法跟办法有非常多种,以下记录下我实现的方法 .我是这样一个思路 ,重写一个View组件 ,在OnDraw里面仅仅负责不绘图形(包含半透明的四个矩形,亮框矩形,亮框上的四个小圆点

Qt on Android:应用截屏

在桌面平台上,QScreen::grabWindow 可以为你的应用截屏,Android 平台上这个不管用了,不过有替代方法. 分两种情况来说吧, Qt Widgets 与 Qt Quick. 插播广告,欢迎关注我的微信订阅号"程序视界",扫描下方二维码即可: 程序视界每周更新一到二篇程序员相关的文章,从心出发,漫谈程序员眼中的世界和世界眼中的程序员. Qt Widgets 最关键的就是一个函数: QWidget::render ,这个方法可以把一个 QWidget(包含它的孩子们)的

android代码实现截屏功能

android开发中通过View的getDrawingCache方法可以达到截屏的目的,只是缺少状态栏! 原始界面 截屏得到的图片 代码实现 1. 添加权限(AndroidManifest.xml文件里) <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 2. 添加1个Button(activity_main.xml文件) <RelativeLayout xmlns

如何使用命令对Android系统进行截屏

Android截图 1.简介 本文是实现对于Android系统在电鱼SAIL-IMX6Q开发板中的截屏命令的使用. 2.准备 SAIL-IMX6Q开发板利用232串口连接电脑,并连接上电源. 再通过连接OTG线,连接电脑,进行安卓系统的烧录. 在电脑端打开超级终端并完成基础设置(波特率:115200,数据位:8,奇偶校验:无,停止位:1,数据流控制:硬件),之后打开开发板电源. 3.解除休眠 烧录安卓系统到开发板i.MX6Q中 开发板连接PC,再在PC中打开超级终端配置成功后开启开发板电源 开机

在Eclipse中开发Android程序时截屏的方法

在Eclipse中调试Android程序时,有时需要将程序截图保存到电脑中.步骤如下: Window --- Show View --- Other : 在弹出的窗口中,选择 Devices : 在打开的Device选项卡中,选择要截图的设备或模拟器,然后点击旁边的截图按钮: 在弹出的窗口中,点击 Save 按钮,将程序截图保存到指定的目录中即可.

android防止系统截屏

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); setContentView(R.layout.activity_main); if (savedInstanceState == null) { getFragmentManager().begi

Android系统截屏的实现(附代码)

1.背景 写博客快两年了,写了100+的文章,最火的文章也是大家最关注的就是如何实现android系统截屏.其实我们google android_screen_shot就会找到很对办法,但那些都是很多年前的了,在android4.*版本后,android对于源码进行了更正,使得以前的方法都不能够使用. 感谢cjd6568358这名网友,我们一起讨论,最终由他实现了android系统截屏功能,为了让以后想要这个功能的coder可以少走一些弯路,我们整理的代码做成开源项目. 2.思路 其实主要思路还

为什么 Android 截屏需要 root 权限

Android 截屏问题 看到很多朋友都有一个需求:那就是截取 Android 的整个屏幕,而且大家都遇到一个相同的问题,没有权限.这篇文章主要从代码的角度分析,问什么需要权限,需要什么样的权限?对截屏方法也有一些分析,欢迎大家讨论. Android 截屏 -- 传统方法 一般最开始的 Android 截屏程序,都是来源于 Linux 的截屏方法,android 使用的 Linux 内核,那么 Linux 下的截屏方法也就最先被 android 采用.Linux  使用了 framebuffer

系统截屏源码浅析

android中实现截屏的方式有很多种,形如下面几种: 1.通过view.getDrawingCache获取屏幕的图像数据,这也是众多开发同行朋友经常使用的一种方式,可惜的是这种方式并不适用于surfaceview. 2.利用adb命令,adb shell screencap -p path,再利用runtime去执行,但是这种方式需要获得系统权限方可. 3.通过framebuffer实现截屏,帧缓冲(framebuffer)是Linux为显示设备提供的一个接口,允许上层应用程序在图形模式下直接