Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 屏幕截屏源碼分享

android 屏幕截屏源碼分享

編輯:關於Android編程

    package net.canking.shottest;  
      
    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 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;  
        }  
      
        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) {  
                // e.printStackTrace();  
            } catch (IOException e) {  
                // e.printStackTrace();  
            }  
        }  
      
        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);  
        }  
    }  

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved