我们大家都在用电脑的时候,用过截屏的功能,有的时候截屏给我们带来了很多的方便,那么我们现在怎么样才能在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. [Network]Android(安卓)N Ethernet新IP获取机制—IpManager
  2. Android(安卓)MotionEvent 坐标获取
  3. Android中选择账户
  4. android沉浸式状态栏的实现
  5. Android中Java和JavaScript交互解决方案,以及问题解决大全
  6. android 横竖屏限制的配置方法
  7. GDB在线调试Android(安卓)Framework Native C/C++代码
  8. Android用户注册界面
  9. 史上最详细的Android(安卓)Studio系列教程三--快捷键

随机推荐

  1. android 网络交互
  2. Android(安卓)Animation学习笔记
  3. [Android]关于android sqlite database存
  4. Android项目结构 以及体系结构
  5. CyanogenMod 10 修改 Vold 使 Android(安
  6. Android(安卓)开发 及 编译系统
  7. afinal的简单应用(一)
  8. 深入探究Android的WebView下载网络文件的
  9. Android系统集成第三方pre-build库和程序
  10. Android(安卓)动态加载APK--代码安装、获