एंड्रॉइड में TextView फॉन्ट आकार सेट करने के तरीके
यह गाइड TextView में टेक्स्ट आकार बदलने के विभिन्न तरीकों को कवर करता है: XML में, प्रोग्रामेटिकली, और स्पैन का उपयोग करके एक ही TextView के अंदर अलग-अलग आकार के लिए।
विधि 1: XML में android:textSize का उपयोग
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="मैं बहुत बड़ा हूँ"
android:textSize="64sp"
android:fontFamily="sans-serif-smallcaps" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="मैं छोटा हूँ"
android:textSize="36sp"
android:fontFamily="serif-monospace" />
विधि 2: Java कोड में प्रोग्रामेटिकली आकार सेट करना
TextView textView = findViewById(R.id.myTextView); // SP यूनिट में सेट करें (उपयोगकर्ता के फॉन्ट आकार प्राथमिकता का सम्मान करता है) textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24); // पिक्सेल में सेट करें (अनुशंसित नहीं) textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, 48);
विधि 3: एक TextView में कई आकारों के लिए SpannableString
import android.text.SpannableString;
import android.text.style.AbsoluteSizeSpan;
SpannableString spannable = new SpannableString("बड़ा छोटा छोटा");
spannable.setSpan(new AbsoluteSizeSpan(48, true), 0, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // "बड़ा"
spannable.setSpan(new AbsoluteSizeSpan(24, true), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // "छोटा"
spannable.setSpan(new AbsoluteSizeSpan(16, true), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); // "छोटा"
textView.setText(spannable);
विधि 4: HTML टैग्स का उपयोग (सरल मामलों के लिए)
textView.setText(Html.fromHtml("बड़ा टेक्स्ट छोटा टेक्स्ट"));
महत्वपूर्ण: SP vs DP
- sp (Scale-independent Pixels): टेक्स्ट आकार के लिए अनुशंसित - उपयोगकर्ता की सिस्टम फॉन्ट आकार सेटिंग के अनुसार स्केल होता है
- dp (Density-independent Pixels): लेआउट आयामों के लिए उपयोग करें, टेक्स्ट के लिए नहीं
बेस्ट प्रैक्टिसेज
- संगति के लिए
dimens.xmlमें आयाम परिभाषित करें - Material Design टाइपोग्राफी स्केल का पालन करें
- एक्सेसिबिलिटी के लिए न्यूनतम 12sp बॉडी टेक्स्ट के लिए