全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Android 实现截屏功能的实例

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截屏的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # 截屏  # 截屏功能的实现  # Android代码截屏功能  # Android截屏方案实现原理解析  # Android截屏分享功能  # Android中关于屏幕的三个小众知识(宽屏适配、禁止截屏和保持屏幕常亮)  # Android 下调试手机截屏的方法  # android长截屏原理及实现代码  # Android实现截屏方式整理(总结)  # android视频截屏&手机录屏实现代码  # 浅谈Android截屏和指定View生成截图  # 的是  # 如有  # 希望能  # 谢谢大家  # 需要注意  # 长和  # 标题栏  # 状态栏  # 疑问请  # 加载  # 只能在  # true  # getWindowVisibleDisplayFrame  # getDrawingCache  # buildDrawingCache  # frame  # Rect  # getWindowManager  # width  # getDefaultDisplay 


相关文章: 建站org新手必看:2024最新搭建流程与模板选择技巧  建站之星3.0如何解决常见操作问题?  学校建站服务器如何选型才能满足性能需求?  建站主机是什么?如何选择适合的建站主机?  电商平台网站制作流程,电商网站如何制作?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  制作网站的基本流程,设计网站的软件是什么?  建站之星安装模板失败:服务器环境不兼容?  如何用西部建站助手快速创建专业网站?  制作网页的网站有哪些,电脑上怎么做网页?  建站之星如何实现PC+手机+微信网站五合一建站?  平台云上自主建站:模板化设计与智能工具打造高效网站  如何用已有域名快速搭建网站?  常州自助建站费用包含哪些项目?  南京网站制作费用,南京远驱官方网站?  建站上传速度慢?如何优化加速网站加载效率?  建站之星伪静态规则如何正确配置?  江苏网站制作公司有哪些,江苏书法考级官方网站?  定制建站平台哪家好?企业官网搭建与快速建站方案推荐  如何在IIS中新建站点并配置端口与物理路径?  C++如何编写函数模板?(泛型编程入门)  如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本  网站图片在线制作软件,怎么在图片上做链接?  怀化网站制作公司,怀化新生儿上户网上办理流程?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  如何通过主机屋免费建站教程十分钟搭建网站?  建站主机核心功能解析:服务器选择与网站搭建流程指南  如何在Windows虚拟主机上快速搭建网站?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  如何选择高性价比服务器搭建个人网站?  三星网站视频制作教程下载,三星w23网页如何全屏?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  小型网站制作HTML,*游戏网站怎么搭建?  大连网站设计制作招聘信息,大连投诉网站有哪些?  如何选择域名并搭建高效网站?  如何配置IIS站点权限与局域网访问?  香港服务器选型指南:免备案配置与高效建站方案解析  如何通过VPS建站无需域名直接访问?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  如何优化Golang Web性能_Golang HTTP服务器性能提升方法  如何通过网站建站时间优化SEO与用户体验?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  高防服务器如何保障网站安全无虞?  建站之星导航如何优化提升用户体验?  建站主机与虚拟主机有何区别?如何选择最优方案?  如何在香港服务器上快速搭建免备案网站?  模具网站制作流程,如何找模具客户?  建站主机选虚拟主机还是云服务器更好?  建站之星24小时客服电话如何获取? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。