मेरे ऐप में मेरे पास जीमेल ऐप यूआई में लेबल के समान दिखने जैसा कुछ है। उन लोगों के लिए जो वे नहीं जानते हैं, वे इस तरह दिखते हैं (लेबल इन रंगीन सलाखों हैं): अतिरिक्त, लंबवत पैडिंग
इसी तरह के प्रभाव को प्राप्त करने के लिए मैं नौ-पैच ड्रॉबल्स का उपयोग करता हूं - प्रत्येक लेबल के लिए मैं एक टेक्स्ट व्यू बना रहा हूं और इसे आकर्षित करने योग्य हूं । यह आसान समाधान है, लेकिन मुझे यह पसंद नहीं है। यह सुरुचिपूर्ण नहीं है, प्रोफाइलर द्वारा दिखाया गया यह काफी धीमा है, और मुझे नहीं लगता कि यह करने का सही तरीका है।
मैंने इसे "आईसीएस-वाई" बनाने के लिए यूआई के डिजाइन को बदल दिया, इसलिए मैंने लेबल से गोलाकार कोनों को हटा दिया। और मैंने सोचना शुरू किया कि मैं 9-पैच समाधान कैसे बदल सकता हूं। BackgroundColorSpan का उपयोग करना सबसे स्पष्ट बात है। लेकिन इसमें एक, छोटी कमी है। मैं चाहता हूं कि मेरे लेबल में कुछ पैडिंग हो। Drawables के साथ, यह हासिल करना आसान था। स्पैन के साथ, यह कठिन है। क्षैतिज पैडिंग बनाने के लिए, मैं बस शुरुआत में और स्ट्रिंग के अंत में रिक्त स्थान जोड़ सकता हूं। लेकिन वर्टिकल पैडिंग को बड़ा कैसे बनाया जाए? चीजों को स्पष्ट करने के लिए, इस BackgroundColorSpan साथ लेबल का एक स्क्रीनशॉट है:
मैं रंग भागों के ऊपर और पाठ के नीचे बड़ा बनाना चाहते हैं। मुझे लगता है कि मुझे किसी प्रकार का मेट्रिकएफ्फेक्टिंगस्पैन का उपयोग करना चाहिए, लेकिन मुझे यह पता नहीं लगा सका। या शायद मुझे अपना खुद लिखना चाहिए? या, आखिरकार, शायद मेरी जरूरतों को पूरा करने में सक्षम नहीं हैं और मुझे छवियों के साथ रहना चाहिए या कैनवास बनाना चाहिए और जीमेल ऐप में सबकुछ "मैन्युअल रूप से" खींचना चाहिए?
+1 आकार के लिए, आप भी ड्रॉप छाया, आदि आकार के संयोजन से जोड़ने जैसे कुछ उन्नत कर सकते हैं। – Guillaume
धन्यवाद! यह निश्चित रूप से छवियों पर एक सुधार है। लेकिन स्पैन मुझे एक टेक्स्ट व्यू-आकार में दो या दो से अधिक लेबल प्रदर्शित करने की अनुमति देगा, अगर मैं गलत हूं तो मुझे सही करें, मुझे इसे आसानी से करने की अनुमति न दें? – user1234567
यह सही है, क्योंकि आप आकृतियों को बिल्कुल ड्रॉबल्स के रूप में उपयोग कर सकते हैं - क्योंकि वे ड्रॉबल्स से अधिक कुछ नहीं हैं। – poitroae