標籤:des android style blog http io os ar java
[java] view plaincopy
- package com.wangzhen.util;
-
- import java.io.File;
- 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 {
-
- // 進行截屏
- private static Bitmap takeScreenShot(Activity activity) {
- // view是將要截屏的view
- View view = activity.getWindow().getDecorView();
- view.setDrawingCacheEnabled(true);
- view.buildDrawingCache();
- Bitmap bitmap = view.getDrawingCache();
-
- // 擷取狀態列高度
- Rect rect = new Rect();
- activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
- int statusBarHeight = rect.top;
-
- // 擷取螢幕長和高
- int width = activity.getWindowManager().getDefaultDisplay().getWidth();
- int height = activity.getWindowManager().getDefaultDisplay()
- .getHeight();
- // 去除標題列
- Bitmap bitmap_final = Bitmap.createBitmap(bitmap, 0, statusBarHeight,
- width, height - statusBarHeight);
- view.destroyDrawingCache();
- return bitmap_final;
- }
-
- // 儲存
- private static void savePic(Bitmap bitmap, File filepath) {
- FileOutputStream fileOutputStream = null;
- try {
- fileOutputStream = new FileOutputStream(filepath);
- if (null != fileOutputStream) {
- bitmap.compress(Bitmap.CompressFormat.PNG, 100,
- fileOutputStream);
- fileOutputStream.flush();
- fileOutputStream.close();
- }
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.out.println(e.getMessage());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
-
- // 外部進行調用的方法
- public static void shoot(Activity activity, File filePath) {
- if (filePath == null) {
- return;
- }
- if (!filePath.exists()) {
- filePath.getParentFile().mkdir();
- }
- ScreenShot.savePic(ScreenShot.takeScreenShot(activity), filePath);
- }
Android截屏關鍵代碼