如何在Android中将整个列表视图保存为图像?

时间:2015-04-28 18:54:37

标签: android android-listview bitmap

关于保存布局的线索很少,如图像herehere。 如果我有列表视图怎么办,并且无法在一个屏幕上显示它们。

2 个答案:

答案 0 :(得分:1)

试试这个:

首先在ListView

中启用绘图缓存
vListView.setDrawingCacheEnabled(true);

然后调整ListView的大小以使每个项目都可见。

ViewGroup.LayoutParams params = (ViewGroup.LayoutParams)  vListView.getLayoutParams();
params.height = (int) (mAdapter.getItemCount() * getResources().getDimension(R.dimen.max_item_height));
vListView.setLayoutParams(params);

最后,您可以使用回调函数或使用Handler执行postDelayed并获取位图。

vListView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                drawingCache = vListView.getDrawingCache();
            }
        });

请告诉我它是否对您有所帮助。

BTW请记住,在Android Studio中,在调试模式下,您可以检查位图变量内容。

答案 1 :(得分:0)

您必须在层次结构中添加它,否则它不会计算其布局。但没有人说你必须在屏幕上实际显示它 - 创建布局,你可以将ListView放在屏幕边界之外,并使用绘图缓存来构建小部件图像。