当前位置: 移动技术网 > IT编程>移动开发>Android > Android 实现截屏功能的实例

Android 实现截屏功能的实例

2019年07月24日  | 移动技术网IT编程  | 我要评论

鸡骨草的作用,颜正国,口袋侦探第十关攻略

android 实现截屏功能的实例

实现代码:

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;
    log.i("tag", "" + 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");
  }
}

需要注意的是,shoot方法只能在view已经被加载后方可调用。

或者在 以下方法这里调用。

 @override
  public void onwindowfocuschanged(boolean hasfocus) {
    // todo auto-generated method stub
    super.onwindowfocuschanged(hasfocus);
    screenshot.shoot(this);
  }

以上就是android截屏的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网