जॉन के रूप में कहा, आप setText के तुरंत बाद ऊंचाई प्राप्त करने में सक्षम नहीं होगा। मुझे यकीन नहीं है कि टेक्स्टव्यू पर getHeight() का उपयोग करके आप बहुत मदद करेंगे। दृश्य की दृश्य न केवल दृश्य में दृश्यमान पाठ की ऊंचाई पर निर्भर है, बल्कि व्यूग्रुप/लेआउट पर भी टेक्स्ट व्यू रहता है। यदि व्यूग्रुप ऊंचाई को अधिकतम करने के लिए टेक्स्ट व्यू को बताता है, तो GetHeight() आपको कहीं भी नहीं ले जाएगा यदि पाठ पाठ के बाद तक आप प्रतीक्षा करते हैं।
मैं तरीके का एक संख्या है कि यह किया जा सकता है देखते हैं:
- उपवर्ग TextView और onSizeChanged विधि के ऊपर लिख। वहां, साइज चेंज पर सुपरर्स को कॉल करें, फिर getLineCount() द्वारा टेक्स्ट व्यू के भीतर लाइनों की संख्या और getLineHeight() के साथ प्रति पंक्ति ऊंचाई प्राप्त करें। यह आपके लेआउट या व्हाट्नॉट के आधार पर getHeight() का उपयोग करने से बेहतर हो सकता है या नहीं।
टेक्स्टव्यू आयामों का उपयोग न करें। TextView.getPaint() के साथ टेक्स्ट व्यू पेंट प्राप्त करें, और फिर
रेक्ट सीमाओं से चौड़ाई और ऊंचाई की गणना करें; paint.getTextBounds (टेक्स्ट, 0, टेक्स्ट। लम्बाई(), सीमाएं);
अब आपके पास सीमाओं में आयाम होंगे। अब आप पेंट.ब्रेकटेक्स्ट के साथ काम कर सकते हैं यह देखने के लिए कि आप एक पंक्ति पर कितना टेक्स्ट फिट करेंगे। शायद टेक्स्टव्यू द्वारा उपयोग किए जाने वाले समान तर्क होने के लिए शायद बहुत अधिक परेशानी और गारंटी नहीं है (मेरी अनियंत्रित आंखों के लिए)।
स्रोत
2011-02-06 14:03:33
जब तक आप इसे प्रस्तुत नहीं कर लेते हैं, तब तक आप दृश्य की ऊंचाई नहीं प्राप्त कर सकते हैं, यही कारण है कि यदि आप पाठ सेट करने के बाद ऊंचाई की जांच कर रहे हैं तो आपको हमेशा 0 वापस आते हैं। आपको ऊंचाई जानने की आवश्यकता क्यों है? आप जो हासिल करने की कोशिश कर रहे हैं उसके बारे में अधिक जानकारी दें। –
असल में मुझे एक ऐसा एप्लिकेशन विकसित करना है जो पृष्ठ के साथ-साथ छवियों (जैसे एक ईबुक रीडर) पृष्ठ को प्रदर्शित करता है (मेरा मतलब है कि इसमें कोई स्क्रोलबार नहीं होना चाहिए) .. इसलिए, जब मेरे पास टेक्स्ट का एक बड़ा हिस्सा रखा जाए, मुझे यह जानने की जरूरत है कि स्क्रीन में पाठ कितना खर्च कर रहा है ताकि यह स्क्रीन में फिट हो .. –