在尝试制作自定义视图的屏幕截图时,我得到了IllegalArgumentException : width and height must be >0
。这是我写的:
bitmap = loadBitmapFromView(v1);//v1 the custom view I want to picture.
public static Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
存在例外情况的行:Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
当然,在显示视图后,在next_act按钮代码
答案 0 :(得分:0)
LayoutParams
的宽度和高度可以是常量,例如FILL_PARENT
,它们是负数。
要获取视图的测量尺寸,您可以使用:
v.getMeasuredWidth() and v.getMeasuredHeight()
但是,这取决于你所追求的是什么,以及视图是否已被测量。
在拍摄截图之前等待视图绘制可能更有意义;-)但是你需要更多地解释一下你的用例。