8

RelativeLaout ビューをビットマップに変換したいと考えています。別の回答とさまざまなオプションを試しましたが、成功しませんでした。私のXMLビューは次のようなものです:

----相対レイアウト
-------ImageView
-------TextView

すべてに wrap_content 対策があります。

ビューのいくつかのビットマップが必要なため、次のように膨らませます。

  LayoutInflater インフレータ = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ビュー v = inflater.inflate(R.layout.localviewlayout, null);

ImageView img = (ImageView) v.findViewById(R.id.imgPlace);
img.setImageBitmap(MyDynamicBitmap);

TextView txt1 = (TextView)v.findViewById(R.id.text1);
txt1.setText(MyDynamicText);
v を返します。

その後 :

//measure() で、RelativeLayout.onMeasure() で nullpointerException を取得します。//MeasureSpec.EXACTLY でも試しました
v.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
                            MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight());
ビットマップ b = Bitmap.createBitmap( v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);
v.draw(新しいキャンバス(b));
ペイント p = 新しいペイント();
myMainCanvas.drawBitmap(b, myPointX, myPointY, p);                   

RelativeLayout の textView の内容は動的なので、テキストの幅や高さがわかりません。例外に加えて、メジャー関数 (insted of 0) で十分なサイズを手動で設定すると、動的テキストが完全に表示されません。今、私は立ち往生しているので、あなたが私を助けてくれることを願っています. ありがとうございます

4

1 に答える 1

22

追加してみる

v.setLayoutParams(new LayoutParams(
    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

電話する前にmeasure()。それは修正されNullPointerExceptionますか?

于 2011-05-22T06:53:35.017 に答える