花粉俱乐部  logo 花粉俱乐部  因为热爱
搜索 |
[实用教程]

Android 屏幕截屏源码简介

[复制帖子标题和链接]

9802

KangVIP  HRT团队  发表于 2014-3-14 15:02:17 来自:浏览器

最新回复 2019-1-8 23:05:41


屏幕截屏只是调用系统类文件:

  1. package net.canking.shottest;  
  2.    
  3. import java.io.File;  
  4. import java.io.FileNotFoundException;  
  5. import java.io.FileOutputStream;  
  6. import java.io.IOException;  
  7.    
  8. import android.app.Activity;  
  9. import android.graphics.Bitmap;  
  10. import android.graphics.Rect;  
  11. import android.view.View;  
  12.    
  13. public class ScreenShot {  
  14.    
  15.     private static Bitmap takeScreenShot(Activity activity) {  
  16.         // View是你需要截图的View  
  17.         View view = activity.getWindow().getDecorView();  
  18.         view.setDrawingCacheEnabled(true);  
  19.         view.buildDrawingCache();  
  20.         Bitmap b1 = view.getDrawingCache();  
  21.    
  22.         // 获取状态栏高度  
  23.         Rect frame = new Rect();  
  24.         activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  
  25.         int statusBarHeight = frame.top;  
  26.    
  27.         // 获取屏幕长和高  
  28.         int width = activity.getWindowManager().getDefaultDisplay().getWidth();  
  29.         int height = activity.getWindowManager().getDefaultDisplay()  
  30.                 .getHeight();  
  31.         // 去掉标题栏  
  32.         Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height  
  33.                 - statusBarHeight);  
  34.         view.destroyDrawingCache();  
  35.         return b;  
  36.     }  
  37.    
  38.     private static void savePic(Bitmap b, File filePath) {  
  39.         FileOutputStream fos = null;  
  40.         try {  
  41.             fos = new FileOutputStream(filePath);  
  42.             if (null != fos) {  
  43.                 b.compress(Bitmap.CompressFormat.PNG, 100, fos);  
  44.                 fos.flush();  
  45.                 fos.close();  
  46.             }  
  47.         } catch (FileNotFoundException e) {  
  48.             // e.printStackTrace();  
  49.         } catch (IOException e) {  
  50.             // e.printStackTrace();  
  51.         }  
  52.     }  
  53.    
  54.     public static void shoot(Activity a, File filePath) {  
  55.         if (filePath == null) {  
  56.             return;  
  57.         }  
  58.         if (!filePath.getParentFile().exists()) {  
  59.             filePath.getParentFile().mkdirs();  
  60.         }  
  61.         ScreenShot.savePic(ScreenShot.takeScreenShot(a), filePath);  
  62.     }  
  63. }
复制代码


花粉6687899  登峰造极  发表于 2014-3-14 15:06:49 来自:浏览器
对我来说只要知道如何截屏就行了,哈哈
佐佐木緋色  自成一派  发表于 2019-1-8 23:05:41 来自:荣耀畅玩6X BLN-AL10
vv你呢
您需要登录后才可以回帖 登录 | 立即注册

工具下载

  • 花粉客户端官方

    Make it Possible

粤ICP备19015064号-4|备案主体编号:44201919072182| 粤公网安备 44190002003939号

Copyright © 2012-2019 华为终端有限公司 版权所有

快速回复 返回顶部 返回列表