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

 更新时间:2015年12月23日 10:11:40   作者:cjjky  
这篇文章主要介绍了Android实现截屏操作功能,即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软件编程有所帮助。

相关文章

  • Android调用系统时间格式显示时间信息

    Android调用系统时间格式显示时间信息

    这篇文章主要介绍了Android调用系统时间格式显示时间信息的使用方法,代码很简单
    2014-01-01
  • 基于Android实现一个常用的布局吸顶效果

    基于Android实现一个常用的布局吸顶效果

    这篇文章给大家介绍一个布局吸顶效果,一般出现在内容较长页面还嵌套着分类页面的情况,比如电商的详情页嵌套分类,在页面滑动到tab的时候我们希望tab还能保留在页面顶部而不被顶上去,文中有详细的代码示例,需要的朋友可以参考下
    2023-09-09
  • Android 数据库SQLite 写入SD卡的方法

    Android 数据库SQLite 写入SD卡的方法

    如果手机没有root,数据库文件是无法查看到的,不方便调试。最好的办法是把数据库写进SD卡。通过本文给大家介绍Android 数据库SQLite 写入SD卡的方法,需要的朋友参考下吧
    2016-04-04
  • 使用Broadcast实现Android组件间的通信

    使用Broadcast实现Android组件间的通信

    这篇文章主要为大家详细介绍了使用Broadcast实现Android组件间的通信,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Android保存联系人到通讯录的方法

    Android保存联系人到通讯录的方法

    怎么保存联系人数据到本机通讯录?这篇文章主要为大家详细介绍了Android保存联系人到通讯录的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • Android开发之全屏与非全屏的切换设置方法小结

    Android开发之全屏与非全屏的切换设置方法小结

    这篇文章主要介绍了Android开发之全屏与非全屏的切换设置方法,结合实例形式分析了Android全屏切换静态与动态两种实现方法,需要的朋友可以参考下
    2017-08-08
  • Android开发之ListView的简单用法及定制ListView界面操作示例

    Android开发之ListView的简单用法及定制ListView界面操作示例

    这篇文章主要介绍了Android开发之ListView的简单用法及定制ListView界面操作,结合实例形式分析了Android ListView界面布局相关操作技巧,需要的朋友可以参考下
    2019-04-04
  • Android 横竖屏处理的知识小结

    Android 横竖屏处理的知识小结

    这篇文章主要介绍了Android 横竖屏处理的知识小结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-03-03
  • libmp3lame及API介绍和使用详解

    libmp3lame及API介绍和使用详解

    这篇文章主要为大家介绍了libmp3lame及API介绍和使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Android序列化实现接口Serializable与Parcelable详解

    Android序列化实现接口Serializable与Parcelable详解

    我们使用 Intent 传递数据的时候,putExtra() 所支持的数据类型事有限的,当需要传递自定义对象的时候就需要序列化。Serializable更简单但是会把整个对象进行序列化因此效率比Parcelable低一些
    2022-12-12

最新评论