我正在使用以下代码
从linearlayout创建位图public static Bitmap loadBitmapFromView(View v){
//Bitmap b = Bitmap.createBitmap( v.getLayoutParams.width, v.getLayoutParams.height, Bitmap.Config.ARGB_8888);
Bitmap b = Bitmap.createBitmap( v.getLayoutParams.width, v.getLayoutParams.height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
v.draw(c);
return b;
}
但我无法看到其中的观点 我只能看到一个灰色的大屏幕
在Android Problems Converting ViewGroup with Children into Bitmap这个问题上尝试了答案,但仍然无法正常工作
我的观点是从xml中膨胀的 当我使用上面提到的代码时,我会强制关闭空指针异常 如果我提到宽度和高度到某个数字,如200,200,那么我能够看到灰色背景,而不是其中的视图。
答案 0 :(得分:1)
您需要在布局之前测量视图,如
v.measure(
MeasureSpec.makeMeasureSpec(v.getLayoutParams().width,MeasureSpec.EXACTLY),
MeasureSpec.makeMeasureSpec(v.getLayoutParams().height, MeasureSpec.EXACTLY));
v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight()
,Bitmap.Config.RGB_565);
Canvas c = new Canvas(b);
v.draw(c);