我们大家都在用电脑的时候,用过截屏的功能,有的时候截屏给我们带来了很多的方便,那么我们现在怎么样才能在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. GDB在线调试Android Framework Native C/C++代码
  2. android 发送短信,彩信,邮件代码
  3. 关机重启代码
  4. Android 重启应用代码
  5. 蓝牙原理Android代码实现
  6. Android ValueAnimator和ObjectAnimator的高级用法(代码实现)
  7. 网上找了些Android数据库操作的代码
  8. Android各个版本对应的源代码

随机推荐

  1. Android应用程序进程启动过程的源代码分
  2. android studio NDK-JNI调用
  3. Android之NDK开发
  4. [Android实例] Android(安卓)深入解析光
  5. Android(安卓)Studio项目结构和Gradle应
  6. Android线程与进程(二)线程详解
  7. Android自适应不同屏幕
  8. Android中Toast的使用
  9. Android自定义属性时TypedArray的使用方
  10. android 工程横竖屏设置无效 cocos2dx v3