measure()无法在动态布局和textView-Android中正常工作

measure()无法在动态布局和textView-Android中正常工作,android,dynamic,bitmap,textview,measure,Android,Dynamic,Bitmap,Textview,Measure,我想将RelativeLaout视图转换为位图。我尝试了另一个答案和不同的选择,但没有成功。 我的XML视图是: ----RelativeLayout -------ImageView -------TextView ----相对论 -------图像视图 -------文本视图 每一个都有包装内容度量 由于我需要几个视图的位图,我将其放大如下: LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(Context

我想将RelativeLaout视图转换为位图。我尝试了另一个答案和不同的选择,但没有成功。 我的XML视图是:

----RelativeLayout -------ImageView -------TextView ----相对论 -------图像视图 -------文本视图 每一个都有包装内容度量

由于我需要几个视图的位图,我将其放大如下:

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); return v; LayoutInflater充气器=(LayoutInflater)mContext.getSystemService(Context.LAYOUT\u充气器\u服务); 视图v=充气机。充气(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; 之后:

//in measure() i get a nullpointerException on RelativeLayout.onMeasure().I also have tried //with MeasureSpec.EXACTLY 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.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); v.draw(new Canvas(b)); Paint p = new Paint(); myMainCanvas.drawBitmap(b, myPointX, myPointY, p); //在measure()中,我在RelativeLayout.onMeasure()上得到了一个nullpointerException。我还尝试了//使用MeasureSpec v、 测量(测量等级makeMeasureSpec(0,测量等级未指定), MeasureSpec.makeMeasureSpec(0,MeasureSpec.unspect)); v、 布局(0,0,v.getMeasuredWidth(),v.getMeasuredHeight()); 位图b=Bitmap.createBitmap(v.getWidth()、v.getHeight()、Bitmap.Config.ARGB_8888); v、 绘制(新画布(b)); 油漆p=新油漆(); 绘图位图(b,myPointX,myPointY,p); RelativeLayout的textView内容是动态的,因此我无法知道文本的宽度或高度。 除此之外,如果我手动在度量函数上设置了足够的大小(而不是0),我的动态文本不会完全显示。 我希望你能帮助我,因为现在,我陷入困境。谢谢你uu

尝试添加

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

调用
measure()
之前。这是否修复了
NullPointerException

与OP有相同的问题,并从此帖子中添加setLayoutParams修复了null指针异常。谢谢谢谢你救了我!