猿问

拍摄整个视图的屏幕截图

我建立了一个表,基本上是HorizontalScrollView在一个表中完成的ScrollView。我让用户可以编辑字段。

现在,我想将表格保存在屏幕,jpg,png,pdf或其他任何格式上。

问题是-桌子几乎总是比屏幕大。

有没有办法制作整个ScrollView布局的屏幕截图?如果没有,您认为可以做什么工作?


慕桂英3389331
浏览 445回答 3
3回答

喵喵时光机

其实我找到了答案: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;}

蝴蝶刀刀

 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);

猛跑小猪

在我的情况下,使用@softwaresupply答案会导致问题,我的视图被重新绘制并变得完全白了。有一种更简单的解决方案来获取屏幕快照,您甚至不必提供宽度和高度作为参数。使用工程图缓存。public static Bitmap loadBitmapFromView(View v) {    Bitmap bitmap;    v.setDrawingCacheEnabled(true);    bitmap = Bitmap.createBitmap(v.getDrawingCache());    v.setDrawingCacheEnabled(false);    return bitmap;}
随时随地看视频慕课网APP

相关分类

Android
我要回答