Android 实现截屏功能的实例
更新时间:2017年08月21日 14:11:14 作者:Jlins
这篇文章主要介绍了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 studio无法创建类和接口和提示问题的完美解决办法
这篇文章主要介绍了Android studio无法创建类和接口和提示问题解决办法,内容比较简单,非常不错,具有参考借鉴价值,需要的朋友可以参考下2018-04-04android网络编程之android连接网络的简单示例代码
这篇文章主要介绍了android连接网络的简单示例,需要的朋友可以参考下2014-04-04Android高手进阶教程(二十六)之---Android超仿Path菜单的功能实现!
本篇文章主要主要介绍了Android超仿Path菜单的功能实现,现在分享给大家,也给大家做个参考。感兴趣的可以了解一下。2016-11-11
最新评论