答案 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放在屏幕边界之外,并使用绘图缓存来构建小部件图像。