sof*_*ply 39 android screenshot
我已经建立了一个基本上由HorizontalScrollView内部完成的表ScrollView.我让用户可以编辑字段.
现在我想将表保存在屏幕上,jpg,png,pdf或其他任何内容.
问题是 - 表几乎总是比屏幕大.
有没有办法制作整个ScrollView布局的屏幕截图?如果不是你认为可以做什么工作?
sof*_*ply 63
其实我找到了答案:
public static Bitmap loadBitmapFromView(View v, int width, int height) {
Bitmap b = Bitmap.createBitmap(width , height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
Run Code Online (Sandbox Code Playgroud)
hac*_*tsu 17
ScrollView iv = (ScrollView) findViewById(R.id.scrollView);
Bitmap bitmap = Bitmap.createBitmap(
iv.getChildAt(0).getWidth(),
iv.getChildAt(0).getHeight(),
Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bitmap);
iv.getChildAt(0).draw(c);
// Do whatever you want with your bitmap
saveBitmap(bitmap);
Run Code Online (Sandbox Code Playgroud)
在我的情况下使用@softwaresupply回答导致问题,我的视图重新绘制并变为完全白色.有一个更简单的解决方案来获取屏幕截图,您甚至不必提供宽度和高度作为参数.使用绘图缓存.
public static Bitmap loadBitmapFromView(View v) {
Bitmap bitmap;
v.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v.getDrawingCache());
v.setDrawingCacheEnabled(false);
return bitmap;
}
Run Code Online (Sandbox Code Playgroud)
无法制作尚未呈现内容的屏幕截图(如ScrollView的屏幕外部分).但是,您可以制作多个屏幕截图,在每个镜头之间滚动内容,然后加入图像.这是一个可以为您自动执行此操作的工具:https://github.com/PGSSoft/scrollscreenshot

免责声明:我是这个工具的作者,它是由我的雇主发布的.欢迎提出功能要求.
| 归档时间: |
|
| 查看次数: |
39454 次 |
| 最近记录: |