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小时内与您取得联系。