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

java代码:

  1. import java.io.FileNotFoundException;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import android.app.Activity;
  5. import android.graphics.Bitmap;
  6. import android.graphics.Rect;
  7. import android.view.View;


  8. public class ScreenShot {


  9. // 获取指定Activity的截屏,保存到png文件
  10. private static Bitmap takeScreenShot(Activity activity){


  11. //View是你需要截图的View
  12. View view = activity.getWindow().getDecorView();
  13. view.setDrawingCacheEnabled(true);
  14. view.buildDrawingCache();
  15. Bitmap b1 = view.getDrawingCache();


  16. //获取状态栏高度
  17. Rect frame = new Rect();
  18. activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
  19. int statusBarHeight = frame.top;
  20. System.out.println(statusBarHeight);

  21. //获取屏幕长和高
  22. int width = activity.getWindowManager().getDefaultDisplay().getWidth();
  23. int height = activity.getWindowManager().getDefaultDisplay().getHeight();


  24. //去掉标题栏
  25. //Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455);
  26. Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight);
  27. view.destroyDrawingCache();
  28. return b;
  29. }


  30. //保存到sdcard
  31. private static void savePic(Bitmap b,String strFileName){
  32. FileOutputStream fos = null;
  33. try {
  34. fos = new FileOutputStream(strFileName);
  35. if (null != fos)
  36. {
  37. b.compress(Bitmap.CompressFormat.PNG, 90, fos);
  38. fos.flush();
  39. fos.close();
  40. }
  41. } catch (FileNotFoundException e) {
  42. e.printStackTrace();
  43. } catch (IOException e) {
  44. e.printStackTrace();
  45. }
  46. }


  47. //程序入口
  48. public static void shoot(Activity a){
  49. ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png");
  50. }
  51. }
复制代码

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. Android: 调试C++代码
  3. android之View的启动过程
  4. android中自己写的日志类
  5. Android创建旋转箭头-不恢复原位-旋转动画的使用
  6. Android--H5交互简介
  7. 基于CSipSimple开发的VOIP网络电话 iCaller for Android
  8. Android(安卓)5.X 新特性详解(一)——主题、Palette、阴影、着色和
  9. android 第三方app截图

随机推荐

  1. Android(安卓)4.0 Ice Cream Sandwich 带
  2. Galaxy S8及S+全屏显示适配
  3. android开发教程(十一)——android应用程
  4. 我在51CTO的第一篇博客--关于6个小时调试
  5. Android(安卓)跳转权限设置界面的终极适
  6. 【eoe教程】Android中自定义视图的绘制方
  7. Android(安卓)源码开发调试方法
  8. 一句话让你的ScrollView、ListView弹力十
  9. Android-利用SharedPreferences实现记住
  10. Android(安卓)Framework移植----长按返回