2012-02-07 13 views
26

दोबारा सेट करना मैं xml फ़ाइल में मुख्य विंडो में इसे जोड़ने के बाद एक टेक्स्ट व्यू ऊंचाई को रीसेट करना चाहता हूं।टेक्स्टव्यू ऊंचाई को प्रोग्रामेटिक रूप से

एक RelativeLayout अंदर,

<TextView 
     android:id="@+id/text_l" 
     android:layout_width="50sp" 
     android:layout_height="50sp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginLeft="10sp" 
     android:layout_marginTop="145dp" 
     android:gravity="center" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="#000000" > 
    </TextView> 

मैं सिर्फ 50 से 70 तक इसे बदलना चाहते:

मैंने कोशिश की:

TextView text = (TextView)findViewById(R.id.text_l); 
text.setHeight(70); 

लेकिन कुछ भी नहीं बदला।

+0

इस प्रयास करें: http://stackoverflow.com/questions/3522224/कैसे-गतिशील रूप से सेट-टेक्स्टव्यू-ऊंचाई-एंड्रॉइड –

उत्तर

70

आप LayoutParams के माध्यम से इसे बदलना चाहिए:

LayoutParams params = (LayoutParams) textView.getLayoutParams(); 
params.height = 70; 
textView.setLayoutParams(params); 

संपादित

आप इस के लिए आप कोड में पिक्सल में आकार, उपयोग आयामों का उपयोग नहीं करना चाहिए:

dimens.xml:

<dimen name="text_view_height">50dp</dimen> 

कोड में:

params.height = getResources().getDimensionPixelSize(R.dimen.text_view_height); 
+1

धन्यवाद आदमी, जो वास्तव में काम करता है: डी – Q8yDev

+0

यहां पर विचित्र बात यह है: textview.setheight (...) ने मेरे कुछ परीक्षण देवताओं पर काम किया es, हालांकि TextView के setHeight फ़ंक्शन के दस्तावेज़ के विपरीत यह दृश्य के लेआउट पैरामीटर को नहीं बदलता है। लेकिन मेरे परीक्षण उपकरणों में से एक (एक्सपीरिया रे, एंड्रॉइड 4.0.4) यह केवल परिदृश्य में काम करता था लेकिन पोर्ट्रेट मोड में नहीं। जैसा कि आपने सुझाव दिया है कि लेआउट पैराम्स में ऊंचाई बदलना मेरे सभी परीक्षण उपकरणों पर ठीक काम करता है। – Nantoka

+0

यह मेरे लिए काम नहीं किया। मुझे डर है कि यह नए एपीआई में काम नहीं करता है। टेक्स्टव्यू स्तरित हो जाने के बाद, टेक्स्ट व्यू में ऊंचाई सेट करने का कोई प्रभाव नहीं पड़ता है। – cesards

3

आप गतिशील रूप से

private TextView mTxtView; 
private int screenWidth, screenHeight; 
Display display = getWindowManager().getDefaultDisplay(); 
    screenWidth = display.getWidth(); 
    screenHeight = display.getHeight(); 


LayoutParams params = mTxtView.getLayoutParams(); 
    params.width = screenWidth-30; 
    mTxtView.setLayoutParams(params); 
6

चौड़ाई और TextView की ऊंचाई सेट pragmatically आप TextView ऊंचाई सेट कर सकते हैं की तरह कर सकते हैं:

private TextView mTxtView; 
int height = 50; //your textview height 
mTxtView.getLayoutParams().height = height; 
+3

मैं सही लेआउटपरैम्स क्लास – Roisgoen

+0

खोजने के बजाए ऐसा करना पसंद करता हूं, यह सच है @Roisgoen –

+0

विशेष ध्यान देने के लिए क्या कॉल है कि यदि आप टेक्स्टआउट को प्राप्त करने के लिए टेक्स्ट व्यू का उपयोग करते हैं, तो यह बेहतर होगा कि शून्य? – BertKing

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