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) で十分なサイズを手動で設定すると、動的テキストが完全に表示されません。今、私は立ち往生しているので、あなたが私を助けてくれることを願っています. ありがとうございます