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
相关文章:
建站主机系统SEO优化与智能配置核心关键词操作指南
山东云建站价格为何差异显著?
长沙企业网站制作哪家好,长沙水业集团官方网站?
javascript中的try catch异常捕获机制用法分析
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
如何选择高效稳定的ISP建站解决方案?
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
韩国服务器如何优化跨境访问实现高效连接?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
免费网站制作appp,免费制作app哪个平台好?
如何快速生成橙子建站落地页链接?
内网网站制作软件,内网的网站如何发布到外网?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?
,sp开头的版面叫什么?
如何在Windows 2008云服务器安全搭建网站?
深圳网站制作的公司有哪些,dido官方网站?
h5网站制作工具有哪些,h5页面制作工具有哪些?
建站主机空间推荐 高性价比配置与快速部署方案解析
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
如何通过虚拟主机空间快速建站?
如何在搬瓦工VPS快速搭建网站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
C++中引用和指针有什么区别?(代码说明)
如何生成腾讯云建站专用兑换码?
如何通过商城免费建站系统源码自定义网站主题?
建站之星如何助力企业快速打造五合一网站?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
如何制作一个表白网站视频,关于勇敢表白的小标题?
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
如何基于PHP生成高效IDC网络公司建站源码?
表情包在线制作网站免费,表情包怎么弄?
如何选择靠谱的建站公司加盟品牌?
如何通过虚拟机搭建网站?详细步骤解析
如何快速查询域名建站关键信息?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何设置并定期更换建站之星安全管理员密码?
企业网站制作公司网页,推荐几家专业的天津网站制作公司?
安云自助建站系统如何快速提升SEO排名?
桂林网站制作公司有哪些,桂林马拉松怎么报名?
制作网站的过程怎么写,用凡科建站如何制作自己的网站?
如何通过VPS建站无需域名直接访问?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
深圳网站制作平台,深圳市做网站好的公司有哪些?
建站主机选购指南与交易推荐:核心配置解析
教学网站制作软件,学习*后期制作的网站有哪些?
C#怎么使用委托和事件 C# delegate与event编程方法
*请认真填写需求信息,我们会在24小时内与您取得联系。