Android实现截屏并保存操作功能

该篇文章是说明在Android手机或平板电脑中如何实现截取当前屏幕的功能,并把截取的屏幕保存到SDCard中的某个目录文件夹下面。
实现的代码如下:

/** * 获取和保存当前屏幕的截图 */ private void GetandSaveCurrentImage() { //1.构建Bitmap WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); int w = display.getWidth(); int h = display.getHeight(); Bitmap Bmp = Bitmap.createBitmap( w, h, Config.ARGB_8888 ); //2.获取屏幕 View decorview = this.getWindow().getDecorView(); decorview.setDrawingCacheEnabled(true); Bmp = decorview.getDrawingCache(); String SavePath = getSDCardPath()+"/AndyDemo/ScreenImage"; //3.保存Bitmap try { File path = new File(SavePath); //文件 String filepath = SavePath + "/Screen_1.png"; File file = new File(filepath); if(!path.exists()){ path.mkdirs(); } if (!file.exists()) { file.createNewFile(); } FileOutputStream fos = null; fos = new FileOutputStream(file); if (null != fos) { Bmp.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); Toast.makeText(mContext, "截屏文件已保存至SDCard/AndyDemo/ScreenImage/下", Toast.LENGTH_LONG).show(); } } catch (Exception e) { e.printStackTrace(); } } /** * 获取SDCard的目录路径功能 * @return */ private String getSDCardPath(){ File sdcardDir = null; //判断SDCard是否存在 boolean sdcardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED); if(sdcardExist){ sdcardDir = Environment.getExternalStorageDirectory(); } return sdcardDir.toString(); }

由于要对SDCard进行操作,所以别忘记了在manifest.xml文件中赋以对SDCard的读写权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

希望本文所述对大家学习Android软件编程有所帮助。

时间: 2024-10-28 15:57:42

Android实现截屏并保存操作功能的相关文章

Android实现截屏并保存操作功能_Android

该篇文章是说明在Android手机或平板电脑中如何实现截取当前屏幕的功能,并把截取的屏幕保存到SDCard中的某个目录文件夹下面. 实现的代码如下: /** * 获取和保存当前屏幕的截图 */ private void GetandSaveCurrentImage() { //1.构建Bitmap WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(

Android系统截屏的实现(附代码)

1.背景                     写博客快两年了,写了100+的文章,最火的文章也是大家最关注的就是如何实现android系统截屏.其实我们google android_screen_shot就会找到很对办法,但那些都是很多年前的了,在android4.*版本后,android对于源码进行了更正,使得以前的方法都不能够使用.        感谢cjd6568358这名网友,我们一起讨论,最终由他实现了android系统截屏功能,为了让以后想要这个功能的coder可以少走一些弯路,

Android实现截屏方式整理(总结)

本文介绍了Android 实现截屏方式整理,分享给大家.希望对大家有帮助 可能的需求: 截自己的屏 截所有的屏 带导航栏截屏 不带导航栏截屏 截屏并编辑选取一部分 自动截取某个空间或者布局 截取长图 在后台去截屏 1.只截取自己应用内部界面 1.1 截取除了导航栏之外的屏幕 View dView = getWindow().getDecorView(); dView.setDrawingCacheEnabled(true); dView.buildDrawingCache(); Bitmap

Android手机截屏

对于android手机截屏,据我所知,现在主要有三种方法. 第一种,通过DDMS. 把手机连接上电脑,运行DDMS,选中你的手机设备,然后点击菜单"设备"->"Screen Capture",如图1. 这时你可以看到手机的屏幕截图. 在该窗口,你可以点击"refresh"按钮更新,可以点击"Rotate"按钮旋转截图,也可以点击"Save"按钮保存截图,还可以点击"Copy"按钮把

Twitter开源Android自动截屏工具Screengrab

Twitter近日宣布开源Android应用截屏工具Screengrab,方便开发者在应用中整合截屏功能.Screengrab集成在Twitter的Fastlane开发者工具中,目前源代码已经托管到GitHub. 与Screengrab功能类似的开源截屏工具还有Android-screeshot-lib和Facebook的Screenshot-tests-for-android. 与很多互联网巨头类似,Twitter也是积极的开源者,通过开源相关工具和代码,Twitter一方面能够推销自己的工具

Android 屏幕截屏方法汇总_Android

1.直接使用getWindow().getDecorView().getRootView() 直接使用getWindow().getDecorView().getRootView()是获取当前屏幕的activity.然而对于系统状态栏的信息是截不了,出现一条空白的.如下图:   主要到没,有一条白色边就是系统状态栏.看一下代码,很简单都加了注释了. //这种方法状态栏是空白,显示不了状态栏的信息 private void saveCurrentImage() { //获取当前屏幕的大小 int

Android 屏幕截屏方法汇总

1.直接使用getWindow().getDecorView().getRootView() 直接使用getWindow().getDecorView().getRootView()是获取当前屏幕的activity.然而对于系统状态栏的信息是截不了,出现一条空白的.如下图: 主要到没,有一条白色边就是系统状态栏.看一下代码,很简单都加了注释了. //这种方法状态栏是空白,显示不了状态栏的信息 private void saveCurrentImage() { //获取当前屏幕的大小 int wi

友推首创支持截屏涂鸦标记分享功能,社交分享组件又一玩家

近日,国内新晋的移动应用组件服务提供商友推发布了新版本,宣布首创推出截屏涂鸦标记分享功能,通过截屏涂鸦标记功能,更方便用户间的沟通分享,通过在图片上的创作加工,产生更多有趣.有分享价值的内容. 在以往的分享过程中,很多用户会截图发送给好友,并根据图片上的信息跟好友讨论,有时为了方便好友能更清楚本人想表达的点,还会先打开图片编辑软件,用画笔标记后发送给对方,操作过程繁琐,十分不方便. 友推在截屏分享中更进一步,通过整合截屏及涂鸦标记编辑,缩短用户的操作流程,帮助用户更好地编辑.表达所分享的内容.

android防止截屏 的方式

问题描述 android防止截屏 的方式 android中除了this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE );这种方式,还有别的方法么, 解决方案 可能就只有这个方法吧,如果你嫌每次都要写,麻烦的话,可以写个BaseActivity,里面加入这行,然后所有activity继承它就行 解决方案二: 这个还真没有很好的方法,因为有的截图是用root直接从屏幕设备中读的每一个像素点的颜色,在应用里没法拦截