Android截屏

public class ViewShot {    

// 获取指定Activity的截屏,保存到png文件

    static String newFilePath;    

private static File sFileParent;  

  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, (int) (width / 10), (int) (height / 4), (int) (width * 0.8), (int) (height * 0.6)         );         view.destroyDrawingCache();         return b;     }  

  // 保存到sdcard    

private static void savePic(Bitmap b, String strFileName, Activity activity) {    

    FileOutputStream fos = null;        

//判断是否存在该文件夹和文件,如果没有新建    

    File file = new File(strFileName);      

  try {             //获取父目录          

  sFileParent = file.getParentFile();        

    //判断是否存在        

    if (!sFileParent.exists()) {

//   

 创建父目录文件              

  sFileParent.mkdirs();             }            

file.createNewFile();          

  fos = new FileOutputStream(new File(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();         }        

UIUtils.showToastSafe("截图保存在" + sFileParent.toString());    

}    

//用于获取当前最新的截图    

public static String getPath() {        

return newFilePath;     }    

// 截屏方法    


    // 截屏方法
    public static void shoot(Activity a) {
        Date date = new Date();
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String fileName = df.format(date) + ".png";
        String sdCardPath = Environment.getExternalStorageDirectory().getPath();
        // String filePath = sdCardPath + File.separator + "456" + File.separator + "qrcode" + File.separator + fileName;

        String filePath = Environment.getExternalStorageDirectory()
                + File.separator + Environment.DIRECTORY_DCIM
                + File.separator + "哈哈哈" + File.separator + fileName;

        newFilePath = filePath;
        ViewShot.savePic(ViewShot.takeScreenShot(a), filePath, a);
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值