Android 实现截屏功能的实例
程序员文章站
2023-12-01 09:51:34
android 实现截屏功能的实例
实现代码:
public class screenshot {
// 获取指定activity的截屏,保存到png文件...
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截屏的实例,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!