该方法适用于对某个Activity进行截图,不包含状态栏,在使用之前要保证view加载完毕才可以进行使用。
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.util.Log;
import android.view.View;
public class ScreenShot {
// 获取指定Activity的截屏,保存到png文件
private static Bitmap takeScreenShot(Activity activity) {
// View是你需要截图的View
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap b1 = view.getDrawingCache();
// 获取状态栏高度
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
Log.i("TAG", "" + statusBarHeight);
// 获取屏幕长和高
int width = activity.getWindowManager().getDefaultDisplay().getWidth();
int height = activity.getWindowManager().getDefaultDisplay()
.getHeight();
// 去掉标题栏
// Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);
Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height
- statusBarHeight);
view.destroyDrawingCache();
return b;
}
// 保存到sdcard
private static void savePic(Bitmap b, String strFileName) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(strFileName);
if (null != fos) {
b.compress(Bitmap.CompressFormat.PNG, 90, fos);
fos.flush();
fos.close();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
// 程序入口
public static void shoot(Activity a) {
ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png");
}
}
分享到:
相关推荐
腾讯作为国内互联网巨头,其在Android自动化测试方面有着丰富的经验和实践,这本书“腾讯Android自动化测试实战电子书”正是对此领域的深度探讨。 首先,我们来了解一下Android自动化测试的基本概念。自动化测试是...
本项目名为"Android代码-安卓app自动化测试项目",其主要目标是实现对安卓应用程序的自动化测试流程,以提高测试效率并减少手动测试的工作量。这个项目的核心是利用各种自动化测试框架和技术,确保应用程序在不同的...
这个名为"Android自动化测试项目"的资源提供了一个全面的框架,专为Android应用程序设计,旨在简化测试流程并增强测试覆盖率。下面我们将深入探讨这个框架所涉及的主要知识点。 首先,**自动化测试** 是一种利用...
Android自动化测试能够显著提高测试效率,减少手动测试的工作量,并确保应用的稳定性和质量。今天我们将深入探讨一个名为Robotium的自动化测试框架,它是专门为Android应用设计的。 **Robotium简介** Robotium是一...
【Android自动化测试十三之MonkeyRunner自动化框架】 MonkeyRunner是Android SDK提供的一种强大的自动化测试工具,它允许开发者通过编写Python脚本来实现对Android设备或模拟器的控制,进行UI级别的自动化测试。...
淘宝Android UI自动化测试实践主要围绕TMTS(Taobao Mobile Test System)展开,这是一个专为无线应用设计的UI自动化测试框架。TMTS的核心是基于Android的Instrumentation机制,能够支持发布版本的测试,同时也提供...
`am`命令行工具是Android系统中用于控制和管理应用的一种实用程序,它在自动化测试框架中扮演着重要角色。这篇原创的博文——"[android]am自动化测试框架"探讨了如何利用`am`命令来构建一个高效的自动化测试解决方案...
Android 手机自动化测试概述 Android 手机自动化测试是指使用自动化测试工具和技术来测试 Android 手机的软硬件功能和性能,以确保手机的稳定性、可靠性和兼容性。本文概述了 Android 手机自动化测试的原理、分类、...
在Android应用开发中,自动化测试是一项至关重要的任务,它能够帮助开发者确保代码的质量,提高测试效率,减少手动测试带来的繁琐工作。"Android APK自动化测试"的主题聚焦于如何使用各种工具和技术来实现对APK应用...
在Android开发过程中,自动化测试是确保应用稳定性和性能的关键步骤。MonkeyRunner是Android SDK提供的一种工具,用于编写和执行对Android设备或模拟器的自动化测试。这个工具通过Python脚本来控制设备,进行各种...
首先,我们了解到传统的Android自动化测试通常依赖于JUnit框架和Android SDK中的`android.test`包,但这需要应用程序的源代码,这对于许多只做黑盒测试的测试工程师来说并不实际。 Android系统中的权限控制严格限制...
Instrumentation是Google早期提供的Android自动化测试基础工具,它提供了一种低级别的接口来控制和监控应用的行为。虽然可以用来编写测试,但它较为底层,通常需要结合其他框架如JUnit或Robotium来实现更高级别的...
总结来说,Android自动化测试是通过工具和框架进行的高效、可重复的测试方式,其中Robotium是流行的UI测试框架之一,而`android-junit-report`则帮助我们生成详细的测试报告。这两个组件的结合使用,能够显著提升...
MonkeyRunner是Android SDK中提供的一个更高级的自动化测试工具,它可以编写Python脚本来执行更复杂的测试任务,包括屏幕截图、图像比较、自定义事件序列等。MonkeyRunner可以与Monkey测试结合使用,提供更全面的...
本压缩包“行业分类-设备装置-基于android平台的自动化测试方法及测试工具.zip”提供了关于如何在Android平台上进行自动化测试的方法和工具的详细资料,特别是针对设备装置的测试。 首先,我们来了解一下自动化测试...