3

レイアウトLiner、Relative、Frameなどをビットマップに変換するメソッドを作成しましたが、このメソッドをジェネリックにして、特定のまたはandroid.view.ViewGroupではなくパラメーターとして受け入れるようにします。RelativeLinearLayout

これが私の方法です:

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

両方のレイアウトはから継承するViewGroupためViewGroup、メソッドパラメータとして使用でき、これらのステートメントはすべて正常に機能します。

また 、一般的なものにするViewGroup.LayoutParams代わりにRelativeLayout.LayoutParamsを使用する必要があります。

于 2012-06-19T07:57:54.953 に答える