我想将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
吗?