Android 8.0 (एपीआई लेवल 26) और उसके बाद के वर्शन के साथ,
टेक्स्ट का साइज़ सेट करने के लिए TextView
लेआउट को भरने के लिए उसे अपने-आप बड़ा या छोटा कर सकते हैं. ऐसा
TextView की विशेषताएं और सीमाएं. इस सेटिंग से, ये काम करना आसान हो जाता है
डाइनैमिक कॉन्टेंट की मदद से, अलग-अलग स्क्रीन पर टेक्स्ट के साइज़ को ऑप्टिमाइज़ करें.
सपोर्ट लाइब्रेरी 26.0, अपने-आप साइज़ होने की सुविधा TextView के साथ पूरी तरह काम करता है
सुविधा को Android 8.0 (एपीआई लेवल 26) या इससे पहले के वर्शन वाले डिवाइसों पर इस्तेमाल किया जा सकता है.
android.support.v4.widget पैकेज में TextViewCompat शामिल है
क्लास का इस्तेमाल करें.
TextView अपने-आप साइज़ बदलने की सुविधा सेट अप करें
अपने-आप साइज़ बदलने की सुविधा सेट अप करने के लिए, फ़्रेमवर्क या सहायता लाइब्रेरी का इस्तेमाल किया जा सकता है
TextView प्रोग्राम के हिसाब से या एक्सएमएल में. यहां की यात्रा पर हूं
एक्सएमएल एट्रिब्यूट को सेट करने के लिए, प्रॉपर्टी
विंडो खोलें.
TextView के लिए, अपने-आप साइज़ बदलने की सुविधा को तीन तरीकों से सेट अप किया जा सकता है.
नीचे दिए गए सेक्शन में इनके बारे में बताया गया है:
ध्यान दें: अगर किसी एक्सएमएल फ़ाइल में, अपने-आप साइज़ बदलने की सुविधा सेट की जाती है, तो हम
"wrap_content" वैल्यू का इस्तेमाल करके सुझाया गया के लिए
layout_width या layout_height एट्रिब्यूट
TextView. ऐसा करने से
अनचाहे नतीजे.
डिफ़ॉल्ट
डिफ़ॉल्ट सेटिंग से, TextView स्केल को अपने-आप साइज़ बदलने की सुविधा मिलती है
हॉरिज़ॉन्टल और वर्टिकल ऐक्सिस पर एक जैसा.
- प्रोग्राम के हिसाब से डिफ़ॉल्ट सेटिंग तय करने के लिए,
setAutoSizeTextTypeWithDefaults(int autoSizeTextType)तरीका. बंद करने के लिएAUTO_SIZE_TEXT_TYPE_NONEजोड़ें अपने-आप साइज़ बदलने की सुविधा याAUTO_SIZE_TEXT_TYPE_UNIFORMहॉरिज़ॉन्टल और वर्टिकल ऐक्सिस को एक जैसा स्केल करें. - एक्सएमएल में डिफ़ॉल्ट सेटिंग तय करने के लिए,
androidनेमस्पेस का इस्तेमाल करें औरautoSizeTextTypeएट्रिब्यूट को कोई नहीं के लिए या एक जैसा.
ध्यान दें: यूनिफ़ॉर्म के लिए डिफ़ॉल्ट डाइमेंशन
स्केलिंग minTextSize = 12sp है,
maxTextSize = 112sp और granularity = 1px.
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" />
सहायता लाइब्रेरी का इस्तेमाल करके, डिफ़ॉल्ट सेटिंग तय करें
- सहायता लाइब्रेरी के ज़रिए डिफ़ॉल्ट सेटिंग को प्रोग्राम के हिसाब से तय करने के लिए,
कॉल करो
TextViewCompat.setAutoSizeTextTypeWithDefaults(TextView textview, int autoSizeTextType)तरीका.TextViewविजेट और किसी एक टेक्स्ट टाइप का इंस्टेंस दें, जैसे किTextViewCompat.AUTO_SIZE_TEXT_TYPE_NONEयाTextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM. - सहायता लाइब्रेरी के ज़रिए एक्सएमएल में डिफ़ॉल्ट सेटिंग तय करने के लिए,
appनेमस्पेस औरautoSizeTextTypeसेट करें एट्रिब्यूट की वैल्यू को कोई नहीं या यूनिकोड पर सेट करना चाहिए.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" /> </LinearLayout>
जानकारी का स्तर
आपके पास कम से कम और ज़्यादा से ज़्यादा टेक्स्ट साइज़ की रेंज तय करने का विकल्प होता है.
डाइमेंशन जो हर चरण का साइज़ बताता है. कॉन्टेंट बनाने
TextView,
कम से कम और ज़्यादा से ज़्यादा साइज़ वाले एट्रिब्यूट. हर बढ़ोतरी, प्रक्रिया के चरण के तौर पर होती है
साइज़ को जानकारी के लेवल वाले एट्रिब्यूट में सेट किया गया है.
- टेक्स्ट साइज़ और डाइमेंशन की रेंज को प्रोग्राम की मदद से तय करने के लिए,
यह
setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है तरीका. ज़्यादा से ज़्यादा वैल्यू, कम से कम वैल्यू, जानकारी के बारे में पूरी जानकारी दें वैल्यू और कोई भीTypedValueडाइमेंशन यूनिट का इस्तेमाल करता है. - एक्सएमएल में टेक्स्ट साइज़ की रेंज और डाइमेंशन तय करने के लिए,
androidका इस्तेमाल करें नेमस्पेस और सेट ये एट्रिब्यूट:- सेट करें
autoSizeTextTypeअभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है एट्रिब्यूट की वैल्यू को none या uniform के तौर पर सबमिट करें. none वैल्यू डिफ़ॉल्ट है और uniform, हॉरिज़ॉन्टल और हॉरिज़ॉन्टल पर एक समानTextViewस्केल वर्टिकल ऐक्सिस. autoSizeMinTextSizeसेट करें,autoSizeMaxTextSize, औरautoSizeStepGranularityइसकी वैल्यू अपने-आप साइज़ बदलने की सुविधा के लिए, डाइमेंशन तय करने की सुविधा होती हैTextView.
- सेट करें
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" android:autoSizeMinTextSize="12sp" android:autoSizeMaxTextSize="100sp" android:autoSizeStepGranularity="2sp" />
सपोर्ट लाइब्रेरी का इस्तेमाल करके, जानकारी का स्तर तय करना
- इसका इस्तेमाल करके, टेक्स्ट साइज़ और डाइमेंशन की रेंज को प्रोग्राम के हिसाब से तय किया जा सकता है
सहायता लाइब्रेरी का इस्तेमाल करने के लिए,
TextViewCompat.setAutoSizeTextTypeUniformWithConfiguration(int autoSizeMinTextSize, int autoSizeMaxTextSize, int autoSizeStepGranularity, int unit)तरीका. ज़्यादा से ज़्यादा वैल्यू, सबसे कम वैल्यू, जानकारी के लेवल के बारे में पूरी वैल्यू दें. और कोई भीTypedValueडाइमेंशन यूनिट. - सहायता सेवा की मदद से, एक्सएमएल में टेक्स्ट साइज़ की रेंज और डाइमेंशन तय करने के लिए
लाइब्रेरी से,
appनेमस्पेस का इस्तेमाल करें औरautoSizeText,autoSizeMinTextSize,autoSizeMaxTextSize, और लेआउट की एक्सएमएल फ़ाइल में,autoSizeStepGranularityएट्रिब्यूट की वैल्यू दी गई है.
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" app:autoSizeMinTextSize="12sp" app:autoSizeMaxTextSize="100sp" app:autoSizeStepGranularity="2sp" /> </LinearLayout>
पहले से सेट किए गए साइज़
पहले से सेट किए गए साइज़ की मदद से, वे वैल्यू सेट की जा सकती हैं जिन्हें
TextView, टेक्स्ट का अपने-आप साइज़ बदलने पर चुनता है.
-
प्रीसेट साइज़ का इस्तेमाल करके,
प्रोग्राम के हिसाब से
TextView,setAutoSizeTextTypeUniformWithPresetSizes(int[] presetSizes, int unit)तरीका. साइज़ और कोई भीTypedValueका कलेक्शन दें डाइमेंशन यूनिट का इस्तेमाल करें. -
प्रीसेट साइज़ का इस्तेमाल करके,
एक्सएमएल में
TextView,androidका इस्तेमाल करें नेमस्पेस और इन एट्रिब्यूट को सेट करें:autoSizeTextTypeको सेट करें एट्रिब्यूट की वैल्यू को none या uniform के तौर पर सबमिट करें. कोई भी नहीं मान डिफ़ॉल्ट होता है और uniform, हॉरिज़ॉन्टल और हॉरिज़ॉन्टल पर एक समानTextViewस्केल वर्टिकल ऐक्सिस.- सेट करें
autoSizePresetSizesएट्रिब्यूट का इस्तेमाल करके प्रीसेट साइज़ की कैटगरी चुनी जा सकती है. अरे को इस तौर पर ऐक्सेस करने के लिए: रिसॉर्स,res/values/arrays.xmlमें अरे तय करें फ़ाइल से लिए जाते हैं.
<resources> <array name="autosize_text_sizes"> <item>10sp</item> <item>12sp</item> <item>20sp</item> <item>40sp</item> <item>100sp</item> </array> </resources>
<?xml version="1.0" encoding="utf-8"?> <TextView android:layout_width="match_parent" android:layout_height="200dp" android:autoSizeTextType="uniform" android:autoSizePresetSizes="@array/autosize_text_sizes" />
सपोर्ट लाइब्रेरी का इस्तेमाल करके प्रीसेट साइज़ सेट अप करना
- प्रीसेट साइज़ का इस्तेमाल करके,
प्रोग्राम के हिसाब से
TextViewका इस्तेमाल करके, सहायता लाइब्रेरी सेTextViewCompat.setAutoSizeTextTypeUniformWithPresetSizes(TextView textView, int[] presetSizes, int unit)तरीका.TextViewक्लास का कोई इंस्टेंस दें, साइज़ का अरे और इसके लिए कोई भीTypedValueडाइमेंशन यूनिट आकार. - प्रीसेट साइज़ का इस्तेमाल करके,
सहायता लाइब्रेरी के ज़रिए एक्सएमएल में
TextViewके लिए,appनेमस्पेस औरautoSizeTextTypeसेट करें लेआउट एक्सएमएल फ़ाइल मेंautoSizePresetSizesएट्रिब्यूट.
<resources> <array name="autosize_text_sizes"> <item>10sp</item> <item>12sp</item> <item>20sp</item> <item>40sp</item> <item>100sp</item> </array> </resources>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="200dp" app:autoSizeTextType="uniform" app:autoSizePresetSizes="@array/autosize_text_sizes" /> </LinearLayout>
अन्य संसाधन
डाइनैमिक के साथ काम करते समय, TextView का अपने-आप साइज़ बदलने के बारे में ज़्यादा जानकारी के लिए
कॉन्टेंट, देखें
Android Jetpack: अपने-आप साइज़ बदलने वाला TextView.