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.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;
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;
}


//保存到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");
}
}

更多相关文章

  1. 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
  2. Android:获取状态栏高度
  3. Android保存图片到图库,Android扫描文件到媒体库,Android保存图片
  4. Android获取手机屏幕的宽高
  5. Android(安卓)获取屏幕尺寸与密度
  6. android studio 日期选择DatePickerDialog取值
  7. android 升级包检测并更新实现
  8. 调用与外部接口
  9. Android开发录音和播放音频的步骤(动态获取权限)

随机推荐

  1. Android(安卓)Studio混淆相关总结
  2. Nexus6 Android原生系统刷机方法
  3. Android 使用颜色矩阵改变图片颜色,透明度
  4. Android应用在不同版本间兼容性处理
  5. 【Android 性能优化】布局渲染优化 ( GPU
  6. android 系统提示对话框(AlertDialog)的使
  7. Android 使用 百度地图 测量 多边形面积
  8. Android 获取系统时间及时间戳转换
  9. Android 仿网易一元夺宝客户端下拉加载动
  10. Android 对okhttp的封装