无法获取linearlayout的位图及其子视图

时间:2011-11-09 11:28:29

标签: android view bitmap

我正在使用以下代码

从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,那么我能够看到灰色背景,而不是其中的视图。

1 个答案:

答案 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);
相关问题