Android 屏幕截图

来源:互联网 发布:阿兴网络项目 编辑:程序博客网 时间:2024/05/21 17:56

我们大家都在用电脑的时候,用过截屏的功能,有的时候截屏给我们带来了很多的方便,那么我们现在怎么样才能在android中实现这个功能那,下面我们就用代码来实现这个对我们很方便的功能。

java代码:

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");   }   }  




原创粉丝点击