如何拍摄屏幕截图并以编程方式共享

编程入门 行业动态 更新时间:2024-10-19 00:24:46
本文介绍了如何拍摄屏幕截图并以编程方式共享的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在使用Android开发一个应用程序,其中必须拍摄我的一项活动的屏幕截图并将其作为附件邮寄.

I am making an application in Android in which I have to take screenshot of one of my activities and mail it as attachment.

我想获取当前页面的屏幕截图,然后通过电子邮件,蓝牙,Twitter或Facebook分享.

I want to take screenshot of the current page and then share it via email, Bluetooth, Twitter or Facebook.

我的代码如下:

@Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menuselected1, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.ScreenShot: try { takeScreenShot(this); } catch (Exception e) { System.out.println(e); } return true; default: return super.onOptionsItemSelected(item); } } private static void savePic(Bitmap b, String strFileName) { FileOutputStream fos = null; try { fos = new FileOutputStream(strFileName); if (null != fos) { bpress(Bitmap.CompressFormat.PNG, 90, fos); System.out.println("b is:"+b); fos.flush(); fos.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void shoot(Activity a,String b) { //savePic(takeScreenShot(a), "sdcard/xx.png"); savePic(takeScreenShot(a), b); } private static Bitmap takeScreenShot(Activity activity) { 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; 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; }

推荐答案

尝试以下操作以获取当前活动的屏幕截图:

Try this for taking screenshot of current Activity:

Android 2.2:

Android 2.2 :

private static Bitmap takeScreenShot(Activity activity) { 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; DisplayMetrics displaymetrics = new DisplayMetrics(); mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); int width = displaymetrics.widthPixels; int height = displaymetrics.heightPixels; Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight); view.destroyDrawingCache(); return b; } private static void savePic(Bitmap b, String strFileName) { FileOutputStream fos = null; try { fos = new FileOutputStream(strFileName); if (null != fos) { bpress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }

更多推荐

如何拍摄屏幕截图并以编程方式共享

本文发布于:2023-11-24 20:54:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1626775.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:并以   截图   屏幕   方式

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!