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.os.Environment;import android.view.View;//获取指定Activity的截屏,保存到png文件public class ScreenShot {private static Bitmap takeScreenShot(Activity activity) {// View是你需要截图的ViewView 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;System.out.println(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;} // 保存到sdcardprivate 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), Environment.getExternalStorageDirectory()+"/xx.png");}}

来源于网络

更多相关文章

  1. android视频截图
  2. Android 获取屏幕高宽度,密度,通知栏高度,截图等常用方法
  3. Android程序入口ActivityThread和Android应用程序启动流程详解
  4. android 程序截图功能
  5. Android getDecorView用途——屏幕截图
  6. android后台获取当前屏幕截图(screencap.cpp修改)
  7. 关于android应用程序的入口

随机推荐

  1. 2014年Android碎片化报
  2. GitHub Android(安卓)Librarys Top 100
  3. Android基础入门教程——8.4.4 Android动
  4. Android之主题与样式
  5. Android当中的MVP模式(七)终篇---关于对MVP
  6. 安卓的优缺点
  7. Android(安卓)4.4(KitKat)窗口管理子系统
  8. Android APP支持RTL模式
  9. 如何在Android Studio项目中导入开源库?
  10. 浅谈Android中MVC、MVP、MVVM模式(二)