我想将RelativeLaout View 转换为位图。我尝试了另一个答案和其他选择,但均未成功。
我的XML View 有以下几种:

---- RelativeLayout
------- ImageView
------- TextView

每个人都有wrap_content措施。

因为我需要 View 的几个位图,所以我以这种方式夸大了它:

LayoutInflater inflater =(LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View 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(新 Canvas (b));
Paint p =新的Paint();
myMainCanvas.drawBitmap(b,myPointX,myPointY,p);

RelativeLayout的textView的内容是动态的,所以我不知道文本的宽度或高度。
除了异常(exception),如果我在度量功能上手动设置了足够的大小(插入值为0),我的动态文本将不会完全显示。
希望您能为我提供帮助,因为现在,我陷入困境。谢谢你

最佳答案

尝试添加

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

在调用measure()之前。这样可以修复NullPointerException吗?

10-08 08:26