Android 5.0+ 截屏工具类(无需Root权限,可截取桌面)

虽然是个很鸡肋的工具类,但是等5.0以下的设备越来越少的时候就有用了,用到的是MediaProjection,做了封装,使用更简单

调用方法:

初始化:

private ShotUtils shotUtils;
shotUtils = new ShotUtils(getApplicationContext());
shotUtils.init(MainActivity.this); 

回调:

   @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case ShotUtils.REQUEST_MEDIA_PROJECTION:
                shotUtils.setData(data);
                break;
        }
    }

调用截图的方法:

 shotUtils.startScreenShot(new ShotUtils.ShotListener() {
                    @Override
                    public void OnSuccess(final Bitmap bitmap) {
                                iv.setImageBitmap(bitmap);
                    }
                });

截取桌面的效果图

shot.jpg

老规矩,放Demo,Demo里是个摇动手机截屏的,工具类也在里面,好用的话给个Start
Demo:https://github.com/bertsir/ScreenShot

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 125,007评论 16 537
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    会飞的鱼69阅读 21,146评论 18 385
  • 前言 在Android项目开发中一个界面的显示状态包括好几种:内容界面,loading界面,网络错误界面等等;以前...
    伪文艺大叔阅读 6,320评论 36 108
  • 告げたい、告げたい。 七年前、《失った傘》を書いたあの女の子に再会したい。いろいろなことを伺いたいし、彼女はお元気...
    WoodSage阅读 18评论 0 0
  • 昨晚闺蜜打来电话哭诉时,简直就象天塌了一样:他那平时儒雅的老公在陪她在医院做妇科检查时对大夫说,她们那方面二、三个...
    郁金香88阅读 43评论 0 2