转自:http://blog.youkuaiyun.com/arui319/article/details/9273563
public class ScreenShot {
public 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;// 获取屏幕长和高
int width = activity.getWindowManager().getDefaultDisplay().getWidth();
int height = activity.getWindowManager().getDefaultDisplay()
.getHeight();// 去掉标题栏
Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height
- statusBarHeight);view.destroyDrawingCache();
return b;
}
<span style="color:#ff0000;">//新增方法</span>
public static Bitmap takeViewShot(View view) {
// View是你需要截图的View
view.setDrawingCacheEnabled(true);view.buildDrawingCache();
Bitmap b1 = view.getDrawingCache();// 获取View长和高
int width = view.getWidth();
int height = view.getHeight();Bitmap b = Bitmap.createBitmap(b1, 0, 0, width, height);
view.destroyDrawingCache();
return b;}private static void savePic(Bitmap b, File filePath) {
FileOutputStream fos = null;try {
fos = new FileOutputStream(filePath);
if (null != fos) {b.compress(Bitmap.CompressFormat.PNG, 100, fos);
fos.flush();
fos.close();}
} catch (FileNotFoundException e) {
} catch (IOException e) {
}}public static void shoot(Activity a, File filePath) {
if (filePath == null) {
return;}
if (!filePath.getParentFile().exists()) {
filePath.getParentFile().mkdirs();
} ScreenShot.savePic(ScreenShot.takeScreenShot(a), filePath);
}}