3

我已经编写了一个方法来将任何布局 Liner、Relative、Frame 等转换为位图,但我想让这个方法通用,以便它接受android.view.ViewGroup作为参数而不是特定的Relativeor LinearLayout

下面是我的方法:

public Bitmap getBitmapFromView(RelativeLayout v) {
        v.setLayoutParams(new LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT));
        v.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
        v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
        Bitmap b = Bitmap.createBitmap(v.getMeasuredWidth(), v.getMeasuredHeight(), Bitmap.Config.ARGB_8888);

        Canvas c = new Canvas(b);
        v.draw(c);
        return b;
    }
4

1 回答 1

3

两个 Layout 都继承自ViewGroup,因此您可以将ViewGroup其用作方法参数,并且所有这些语句都可以正常工作。

此外,您应该使用 ViewGroup.LayoutParams而不是RelativeLayout.LayoutParams使其通用。

于 2012-06-19T07:57:54.953 回答