在拍摄自定义视图的屏幕截图时出现IllegalArgumentException

时间:2013-04-05 17:32:12

标签: android view screenshot

在尝试制作自定义视图的屏幕截图时,我得到了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按钮代码

上执行屏幕截图代码

1 个答案:

答案 0 :(得分:0)

LayoutParams的宽度和高度可以是常量,例如FILL_PARENT,它们是负数。

要获取视图的测量尺寸,您可以使用:

v.getMeasuredWidth() and v.getMeasuredHeight()

但是,这取决于你所追求的是什么,以及视图是否已被测量。

在拍摄截图之前等待视图绘制可能更有意义;-)但是你需要更多地解释一下你的用例。