मेरे ऐप के लिए मुझे एक फ़ॉन्ट चाहिए जो डिवाइस डिस्प्ले आकार के साथ अच्छी तरह से स्केल करता है। मैंने कोशिश की लेकिन सिस्टम फोंट छोटे, मध्यम और बड़े को पसंद नहीं आया। मिमी में एक आकार निर्दिष्ट करना भी अनाकर्षक है क्योंकि इसकी गणना प्रत्येक उपकरण के लिए की जाती है। मैंने पाया कि मुझे आईओएस और एंड्रॉइड डिवाइस दोनों पर एक देशी बटन (अचयनित) का फ़ॉन्ट पसंद है। (एंड्रॉइड पर, देशी लेबल, बटन और टेक्स्टफिल्ड के अलग-अलग फ़ॉन्ट आकार होते हैं; मुझे एक समान आकार चाहिए।) इसलिए मैंने अपने सभी टेक्स्ट घटकों के लिए मूल बटन फ़ॉन्ट का उपयोग करने का निर्णय लिया।

मान लें कि मैं थीम में UIID MyTextField जोड़ता हूं और फ़ॉन्ट को छोड़कर सब कुछ (पृष्ठभूमि, रंग इत्यादि) निर्दिष्ट करता हूं। वह फ़ॉन्ट जिसे मैं मूल बटन से प्राप्त करना चाहता हूं। हालांकि, डेवलपर मार्गदर्शिका कहती है (3.3.13 में): 'हमेशा केवल आपके द्वारा परिभाषित UIID से प्राप्त होता है उदा. माईबटन'. तो आप मूल बटन फ़ॉन्ट का उपयोग कैसे करते हैं? मैंने फ़ॉन्ट को कोड में सेट करने का निर्णय लिया और यह काम करता है:

// includeNativeBool == true
Font myFont = new Button().getUnselectedStyle().getFont();
...
TextField textField = new TextField();
textField.setUIID("MyTextField");
textField.getAllStyles().setFont(myFont);

क्या यह सही समाधान है? या शैली में फ़ॉन्ट को संभालने का कोई तरीका है?

1
J-J 17 मार्च 2020, 18:18

1 उत्तर

सबसे बढ़िया उत्तर

संबंधित ओएस के लिए थीम में बटन फ़ॉन्ट आकार मिलीमीटर में परिभाषित किया गया है। MM का आकार प्रदर्शन घनत्व के आधार पर एक समान होता है, इसलिए यह आपके द्वारा प्राप्त किए जा सकने वाले समान आकार की सबसे नज़दीकी चीज़ होनी चाहिए।

आपने जो किया वह एक हैक है। यह सिद्धांत रूप में काम करेगा लेकिन यह बदसूरत दिखता है और जब हम अंतर्निहित मूल थीम डिज़ाइन को बदलते हैं तो यह असंगत और अप्रत्याशित रूप से व्यवहार करेगा।

1
Shai Almog 18 मार्च 2020, 03:43