TextViews को अपने-आप साइज़ दें

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 हॉरिज़ॉन्टल और वर्टिकल ऐक्सिस को एक जैसा स्केल करें.
  • ध्यान दें: यूनिफ़ॉर्म के लिए डिफ़ॉल्ट डाइमेंशन स्केलिंग minTextSize = 12sp है, maxTextSize = 112sp और granularity = 1px.

  • एक्सएमएल में डिफ़ॉल्ट सेटिंग तय करने के लिए, android नेमस्पेस का इस्तेमाल करें और autoSizeTextType एट्रिब्यूट को कोई नहीं के लिए या एक जैसा.
  • <?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.