2011-03-24 15 views
8

मैं एक रिलेटिवलाउट व्यू को बिटमैप में कनवर्ट करना चाहता हूं। मैंने सफलता के बिना एक और जवाब और विभिन्न विकल्पों की कोशिश की है। मेरे एक्सएमएल देखें तरह का है:माप() गतिशील लेआउट और टेक्स्ट व्यू के साथ ठीक से काम नहीं करता है - एंड्रॉइड

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

हर लोगों उपायों wrap_content है।

मैं देखने के कई बिटमैप्स की जरूरत है, im इसे इस तरह बढ़ा-चढ़ाकर के रूप में:

 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;

उसके बाद:

 

//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);     

RelativeLayout की TextView की सामग्री गतिशील होती है, तो मैं नहीं कर सकते पता है पाठ की चौड़ाई या ऊंचाई। अपवाद के अलावा, यदि मैं मैन्युअल रूप से माप फ़ंक्शन (0 का insted) पर पर्याप्त आकार निर्धारित करता हूं, तो मेरा डायनामिक टेक्स्ट पूरी तरह से प्रदर्शित नहीं होता है। मुझे आशा है कि आप मेरी मदद कर सकते हैं क्योंकि अभी, मैं अटक गया हूं। youuu धन्यवाद

उत्तर

22

measure() कॉल करने से पहले

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

जोड़ने का प्रयास करें। क्या यह NullPointerException को ठीक करता है?

+0

ओपी के समान समस्या थी और इस पोस्ट से सेटलेआउट पैराम्स को जोड़कर शून्य सूचक अपवाद तय किया गया था। धन्यवाद! –

+0

धन्यवाद! तुमने मुझे बचा लिया! –

संबंधित मुद्दे