0
我需要捕获视图到位图。这就是我想这样做:捕获视图到位图返回旧图像
private Bitmap getBitmapFromView1(View rootView) {
Bitmap b = Bitmap.createBitmap(rootView.getWidth(),
rootView.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
rootView.draw(c);
return b;
}
private Bitmap getBitmapFromView2(View rootView) {
rootView.setDrawingCacheEnabled(true);
Bitmap bm = Bitmap.createBitmap(rootView.getDrawingCache());
rootView.setDrawingCacheEnabled(false);
return bm;
}
我也尝试添加buildDrawingCache
和destroyDrawingCache
到第二功能的不同的地方。
在rootView
我有一个FrameLayout
与RecyclerView
里面。有时在滚动此RecyclerView
并要求快照后,我得到一个滚动位置较旧的图像。我对这两种功能都有这种效果。
有趣的是,无论是工作,其他的屏幕上精细,其中rootView
是DrawerLayout
,它也包含RecyclerView
如何总是得到一个新的快照?