2012-07-02 14 views
15

कैसे एक परिपत्र TextView बनाने की कोशिश कर रहा है। यह एक सर्कल जिसमें मैं नीचे की छवि में दिखाए गए अनुसार एक परिपत्र बुलबुले के ऊपर पूरी जगह को समायोजित करना चाहता हूं।एक परिपत्र TextView

कृपया संलग्न छवि देखें।

Circular bubble with text in side

इस छवि में, हम इसे में परिपत्र पाठ के साथ एक परिपत्र बुलबुला है। मैंने पहले से ही अंडाकार आकार .xml को TextView की पृष्ठभूमि के रूप में सेट करने का प्रयास किया है लेकिन अभी भी कोई भाग्य नहीं है।

संपादित करें:

टेक्स्ट की लंबाई में वृद्धि के रूप में। यह सर्कल के अंदर फिट करने के लिए आकार में कम होना चाहिए। इसके बारे में सोचने का यह सबसे कठिन हिस्सा है।

उत्तर

10

आप शायद TextView से विस्तार, पृष्ठभूमि छवि के रूप वृत्त की स्थापना, एक कस्टम दृश्य बनाने की जरूरत है, और पाठ चौड़ाई की गणना/लाइनों को तोड़ने मैन्युअल पाठ की चौड़ाई के अनुसार।

एक स्ट्रिंग की चौड़ाई कुछ गणित और गणना की गणना करने के लिए, को देखने के How to calculate string font width in pixels?

प्रति पंक्ति उपलब्ध स्थान को मापने के लिए निश्चित रूप से आवश्यक है; लेकिन मुझे लगता है कि यह एकमात्र तरीका है, क्योंकि ऐसा करने के लिए वहां कोई मानक घटक नहीं है।

टेक्स्ट को देखने के लिए, Canvas class के drawText का उपयोग करें।

+2

+1, इसके लिए कोई अंतर्निहित घटक नहीं है। साथ ही, कस्टम दृश्य बनाना मजेदार है :) – Felix

+0

आपने कहा, "टेक्स्ट की चौड़ाई के अनुसार मैन्युअल रूप से टेक्स्ट चौड़ाई/लाइनों को तोड़ें।" सर्कल के अंदर अलग-अलग लंबाई के पाठ के अंदर फिट करने के लिए गतिशील होना आवश्यक है। मैं उन पंक्तियों की संख्या कैसे माप सकता हूं जो मेरा पाठ सर्कल के अंदर भर जाएगा? –

+0

मुझे लगता है कि आप पूरे पाठ को एक स्ट्रिंग के रूप में मापेंगे, जो आपको पीएक्स में पूरी आवश्यक चौड़ाई देता है। फिर आपको केंद्र से बाहर की ओर से प्रति पंक्ति पीएक्स स्पेस की गणना करने की आवश्यकता है। मेरे पास उसके लिए एक सूत्र नहीं है, लेकिन शायद यही तरीका है कि मैं इसे देखना शुरू कर दूंगा। लाइन ब्रेक जोड़ना और फिर गिनती करना कि आपको कितनी लाइन ब्रेक चाहिए। बेशक यह एक 'गतिशील' गणना है, क्योंकि रेखाओं की संख्या प्रत्येक पंक्ति की स्ट्रिंग लंबाई से सीधे संबंधित होती है। मुझे यकीन है कि यह थोड़ा जटिल है और इतना आसान नहीं है, लेकिन किया जा सकता है ;-) –

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