2010-07-06 12 views
18

मुझे इसके लिए यहां अच्छी खोज मिली है और समाधान नहीं मिला।मैं टेक्स्टव्यू के लिए न्यूनतम चौड़ाई (वर्णों में) कैसे सेट कर सकता हूं?

मेरे पास एक रिलेवेटिवआउट में टेक्स्ट व्यू है जिसमें एक पूर्णांक संख्या है। संख्या 1 और 99 के बीच होगी - क्या कोई मुझे बता सकता है कि टेक्स्टव्यू का आकार कैसे है ताकि इसकी चौड़ाई हमेशा स्ट्रिंग की चौड़ाई "99" हो, भले ही इसमें केवल "1" हो?

मुझे इसकी आवश्यकता है क्योंकि इस टेक्स्टव्यू के दाईं ओर घटकों की स्थिति इसकी चौड़ाई पर निर्भर करती है, इसलिए सभी टेक्स्टव्यू के अंक के आधार पर सभी स्थितियां हैं।

मुझे कोई फर्क नहीं पड़ता कि यह एक्सएमएल या कोड में किया गया है - मैं केवल से पिक्सेल में टेक्स्टव्यू की चौड़ाई निर्धारित करने से बचना चाहता हूं!

किसी भी संभावित समाधान के लिए धन्यवाद; कृपया पूछें कि क्या मैंने महत्वपूर्ण जानकारी को याद किया है या नहीं!

उत्तर

46

इस प्रयास करें:

android:layout_width="wrap_content" 
android:minEms="2" 
+0

धन्यवाद, यह एक अच्छा 'un की तरह दिखता है! –

+0

यह जादू की तरह काम करता है। –

+1

आप एंड्रॉइड भी जोड़ना चाहते हैं: गुरुत्वाकर्षण = "केंद्र" – Shyri

-2

उपयोग एंड्रॉयड: TextView.Please की maxLength विशेषता this

+0

हाय, आपके उत्तर के लिए धन्यवाद, लेकिन यह न्यूनतम लंबाई है जिसकी मुझे वास्तव में आवश्यकता है। :-) –

0

पढ़ मुझे लगता है कि आप (getTextBounds लिए देख रहे हैं) पेंट कक्षा में विधि। खुद को यह कोशिश नहीं की थी।

16

Ems काम करता है, तो अपने फ़ॉन्ट monospace है। आनुपातिक फ़ॉन्ट्स के लिए, आप इसे दो '0 की चौड़ाई, दो' मीटर की चौड़ाई नहीं चाहते हैं। आप TextPaint.measureText पर वापस आ सकते हैं:

float measureText = zip.getPaint().measureText("00000"); 
zip.setWidth(zip.getPaddingLeft() + zip.getPaddingRight() + (int) measureText); 
+0

जादू की तरह काम करता है! इस कोड स्निपेट को साझा करने के लिए बहुत बहुत धन्यवाद। :) –

+1

ईएमएस सेट करना मेरे लिए काम नहीं करता था, लेकिन ऐसा हुआ। धन्यवाद pforhan :) – jayanth

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

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