Android长截图与长图分享

来源:互联网 发布:万户网络做网站怎么样 编辑:程序博客网 时间:2024/04/24 13:21

1.第一步如何实现长截图

Android长截屏– ScrollView,ListView及RecyclerView截屏
这个链接地址写的很清楚了,建议进行实际操作。

概述:其实长截图就是将布局存成图像,由于Android中的所有可视组件都是绘制在屏幕上的,因此,Android SDK提供了API允许直接将可视组件绘制在Bitmap对象上。涉及到的有两个

//打开图像缓存view.setDrawingCacheEnabled(true);// 必须要调用measure和layout方法才能成功保存可视组件的截图到png图像文件// 测量View的大小view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));// 发送位置和尺寸到View及其所有的子Viewview.layout(0, 0,view.getMeasuredWidth(), view.getMeasuredHeight());try{// 获取可视组件的截图Bitmap bitmap = view.getDrawingCache();// 将截图保存在SD卡根目录的test.png图像文件中FileOutputStream fos = new FileOutputStream("/sdcard/test.png");// 将Bitmap对象中的图像数据压缩成png格式的图像数据,并将这些数据保存在test.png文件中bitmap.compress(CompressFormat.PNG, 100, fos);// 关闭文件输出流fos.close();}catch (Exception e){}View view = getLayoutInflater().inflate(R.layout.main, null);view.setDrawingCacheEnabled(true);Bitmap bitmap = view.getDrawingCache();//不能成功获取布局的 Bitmap 对象。在调用 View.getDrawingCache 方法之前需要调用measure和layout方法才可以成功获取布局的Bitmap对象,代码如下:view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());

2.长截图遇到的坑

长截图遇到的坑

原创粉丝点击