Android截图并分享的小例子
来源:互联网 发布:数据分析属于什么职能 编辑:程序博客网 时间:2024/06/18 17:27
创建ScreenShot类来进行截图处理,并返回保存的文件名
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 String shoot(Activity a) { String strFileName = "sdcard/" + String.valueOf(System.currentTimeMillis()) + ".png"; ScreenShot.savePic(ScreenShot.takeScreenShot(a), strFileName); return strFileName; }}
在需要使用的Activity中调用shoot方法,并使用Intent来分享出去
public class MainActivity extends Activity {private Button btn;private String image;private Button btnShare;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button)findViewById(R.id.btn);btn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {image = ScreenShot.shoot(MainActivity.this);}});btnShare = (Button) findViewById(R.id.btn_share);btnShare.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent = new Intent(Intent.ACTION_SEND);File file = new File(image);intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));intent.setType("image/jpeg");Intent chooser = Intent.createChooser(intent, "Share screen shot");if(intent.resolveActivity(getPackageManager()) != null){startActivity(chooser);}}});}}
0 0
- Android截图并分享的小例子
- Android代码截图并分享
- Android系统截图分享
- 小例子分享JAVA“this”的用法
- android关于截图的小问题
- 拍照并保存文件的小例子
- Android 普通View截图 RecyclerView截图 ScrollView截图分享
- Android 实现截图和分享
- android实现联网小例子,刚学习与大家分享
- Android截图 调用图片照片并截图,相机照相截图
- Android中一个动态更新时间并显示的小例子
- Android爪机连接蓝牙设备并进行通信的小例子
- Android实现对Dialog的截图并保存在本地
- 分享一个购物网站购物车的小例子
- 利用monkeyrunner给Android屏幕连续截图的小程序
- 利用monkeyrunner给Android屏幕连续截图的小程序
- Silverlight 截取摄像头视频截图并通过Base64String上传到数据库的例子
- 小案例分享,11G新特性引发的严重性能问题【附AWR截图】
- 使用MySQL命令行修改密码
- 【C++】CURL环境搭建
- 如何删除控制文件中过去rman备份到磁带的备份集
- 获取网络包到达网卡的时间
- android 无法调用SimpleOnGestureListener 里面的方法
- Android截图并分享的小例子
- json 对象转字符串 互转
- TrueCrypt——文件加密的法宝
- 苟富贵倒萨忽然他确实
- 字符串处理函数整理
- 如何避免表单重复提交
- 类似短信中添加人的layout
- sql 表之间 导出导入数据
- socket中TCP的三次握手建立连接详解