捕获整个scrollview,比UI更大

时间:2013-11-15 11:32:54

标签: android scrollview screenshot capture

我需要捕获超出可见UI的滚动视图,我使用了这段代码:

ScrollView view2 = (ScrollView)findViewById(R.id.scrollCapture);
    view2.setDrawingCacheEnabled(true);
    view2.buildDrawingCache();
    Bitmap bm = view2.getDrawingCache();

但它只捕获显示的屏幕,而不是整个布局。

是否有一些方法可以捕获整个布局,即使没有显示?

非常感谢。

2 个答案:

答案 0 :(得分:0)

使用直接子节点(仅允许一个直接子节点),而不是使用scrollview。例如,如果您的xml文件是

<ScrollView
 android:id="@+id/scrollCapture">
  <LinearLayout
    android:id="@+id/scrollCaptureChild">
  </LinearyLayout>
</ScrollView>

DO

LinearyLayout view3 = (LinearyLayout)findViewById(R.id.scrollCaptureChild);
view3.setDrawingCacheEnabled(true);
view3.buildDrawingCache();
Bitmap bm = view3.getDrawingCache();

答案 1 :(得分:0)

Bitmap bitmap = Bitmap.createBitmap(scrollView.getChildAt(0).getWidth(), scrollView.getChildAt(0).getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bitmap);
scrollView.getChildAt(0).draw(c);