मैं कैसे एक में क्षैतिज और खड़ी पाठ केंद्र है TextView
, इसे के बीच में बिल्कुल दिखाई देता है ताकि TextView
में Android
?
मैं कैसे एक में क्षैतिज और खड़ी पाठ केंद्र है TextView
, इसे के बीच में बिल्कुल दिखाई देता है ताकि TextView
में Android
?
जवाबों:
मैं मान रहा हूँ कि आप XML लेआउट का उपयोग कर रहे हैं।
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="@string/**yourtextstring**"
/>
आप गुरुत्वाकर्षण का उपयोग center_vertical
या center_horizontal
अपनी आवश्यकता के अनुसार भी कर सकते हैं ।
और @stealthcopter ने जावा में टिप्पणी की: .setGravity(Gravity.CENTER);
android:gravity="center"
)। यह अभी भी स्क्रीन के बाईं ओर दिखाता है। :(
android:layout_gravity="center"
, जो कुछ और करता है।
android:gravity="center"
यह चाल चलेगा
आप इसे गतिशील रूप से उपयोग करके भी सेट कर सकते हैं:
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
android:layout_centerInParent="true"
यह तब काम करता है जब एक RelativeLayout के साथ उपयोग किया जाता है, जहां लेआउट की ऊंचाई और चौड़ाई लपेटने के लिए सेट की जाती है।
TextView
। पाठ पूर्ण-चौड़ाई और बहु-पंक्ति और बाएँ-न्यायिक होगा TextView
। यह डिस्प्ले पर लेफ्ट-जस्टिफ़ाइड दिखाई देगा। आपको अन्य उत्तरों में निर्दिष्ट "गुरुत्वाकर्षण" का उपयोग करना चाहिए।
गुरुत्वाकर्षण लागू करें:
TextView txtView = (TextView) findViewById(R.id.txtView);
txtView.setGravity(Gravity.CENTER_HORIZONTAL);
ऊर्ध्वाधर के लिए:
txtView.setGravity(Gravity.CENTER_VERTICAL);
XML में:
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="@string/Hello_World"
/>
इसे करने के दो तरीके हैं।
XML कोड में पहला। आपको Gravity
एट्रीब्यूट पर ध्यान देने की आवश्यकता है । आप ग्राफिक संपादक में भी यह विशेषता पा सकते हैं; यह XML EDITOR की तुलना में आसान हो सकता है।
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal"
android:text="Your Text"
/>
आपके विशिष्ट परिदृश्य के लिए, गुरुत्वाकर्षण के मान निम्न होंगे:
center_vertical|center_horizontal
आलेखीय संपादक में आपको सभी संभावित मान मिलेंगे, यहां तक कि उनके परिणाम भी देखें।
यदि आप TableLayout का उपयोग कर रहे हैं, तो TableRows के गुरुत्वाकर्षण को केंद्र में रखना सुनिश्चित करें। अन्यथा यह काम नहीं करेगा। कम से कम यह मेरे साथ तब तक काम नहीं करता था जब तक कि मैं टेबलरॉ के गुरुत्वाकर्षण को केंद्र में नहीं रखता।
उदाहरण के लिए, इस तरह:
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center">
<TextView android:text="@string/chf" android:id="@+id/tv_chf" android:layout_weight="2" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center"></TextView>
</TableRow>
आपको टेक्स्ट व्यू ग्रेविटी (सेंटर हॉरिजॉन्टल एंड सेंटर वर्टिकल) को इस तरह सेट करना होगा:
android:layout_centerHorizontal="true"
तथा
android:layout_centerVertical="true"
और गतिशील रूप से उपयोग कर रहा है:
textview.setGravity(Gravity.CENTER);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
layout_centerhorizontal
और layout_centervertical
द्वारा layout_centerHorizontal
और layout_centerVertical
( "एच" और "वी" को अपरकेस में, अन्यथा यह अभ्यस्त काम)।
मेरी राय में,
android:gravity="center"
से बेहतर है,
android:layout_centerInParent="true"
जो से बेहतर है,
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
पाठ प्रारूपण के लिए कम से कम।
रैखिक लेआउट के लिए: XML में कुछ इस तरह का उपयोग करें
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal"
android:text="Your Text goes here"
/>
रन टाइम पर ऐसा करने के लिए अपनी गतिविधि में कुछ इस तरह का उपयोग करें
TextView textView1 =(TextView)findViewById(R.id.texView1);
textView1.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
रिलेटिव लेआउट के लिए: XML में कुछ इस तरह का उपयोग करें
<TextView
android:id="@+id/textView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true"
android:text="Your Text goes here"
/>
रन टाइम पर ऐसा करने के लिए अपनी गतिविधि में कुछ इस तरह का उपयोग करें
TextView textView1 =(TextView)findViewById(R.id.texView1);
RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
textView1.setLayoutParams(layoutParams);
XML फ़ाइल में उपयोग करें।
लेआउट फ़ाइल
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:text="@string/stringtext"/>
या:
जावा क्लास के अंदर इसका इस्तेमाल करें
TextView textView =(TextView)findViewById(R.id.texviewid);
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
रिश्तेदार लेआउट के लिए इसका उपयोग करें
android:layout_centerInParent="true"
और अन्य लेआउट के लिए
android:gravity="center"
यदि TextView's
ऊंचाई और चौड़ाई है, wrap content
तो TextView
हमेशा के भीतर पाठ केंद्रित होना चाहिए। लेकिन यदि TextView's
चौड़ाई match_parent
और ऊंचाई है match_parent
या wrap_content
फिर आपको नीचे कोड लिखना है:
के लिए RelativeLayout:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello World" />
</RelativeLayout>
के लिए LinearLayout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello World" />
</LinearLayout>
TextView के लिए गुरुत्वाकर्षण कार्यों का उपयोग करते समय, एपीआई स्तर 17 में लागू एक वैकल्पिक विधि है -
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
अंतर नहीं पता है, लेकिन यह भी काम करता है। हालांकि केवल एपीआई स्तर 17 या उच्चतर के लिए।
में RelativeLayout
, यह इसके साथ अच्छा होगा।
और दूसरा Button
और कुछ भी आप जोड़ सकते हैं।
निम्नलिखित मेरे लिए अच्छी तरह से काम करता है।
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff314859"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<TextView
android:id="@+id/txt_logo"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="your text here"
android:textSize="30dp"
android:gravity="center"/>
...other button or anything else...
</RelativeLayout>
यदि आप एक TableRayout में TableRow पर टेक्स्ट को सेंट करने की कोशिश कर रहे हैं, तो यहां बताया गया है कि मैंने यह कैसे हासिल किया:
<TableRow android:id="@+id/rowName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dip" >
<TextView android:id="@+id/lblSomeLabel"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:layout_width="0dp"
android:layout_weight="100"
android:text="Your Text Here" />
</TableRow>
उपयोग android:textAlignment="center"
<TextView
android:text="HOW WAS\nYOUR\nDAY?"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
android:id="@+id/textView5"
/>
यहाँ मेरा जवाब है कि मैंने अपने ऐप में इस्तेमाल किया था। यह स्क्रीन के केंद्र में पाठ दिखाता है।
<TextView
android:id="@+id/txtSubject"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/subject"
android:layout_margin="10dp"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
यदि आप सापेक्ष लेआउट का उपयोग कर रहे हैं:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stringname"
android:layout_centerInParent="true"/>
यदि आप LinearLayout का उपयोग कर रहे हैं
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/stringname"
android:layout_gravity="center"/>
बस, अपनी XML फ़ाइल में, टेक्स्टव्यू गुरुत्वाकर्षण को केंद्र में सेट करें:
<TextView
android:gravity="center" />
टेक्स्ट केंद्रित करने के लिए आप ऐसा कर सकते हैं
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center" />
TextView की ऊँचाई और चौड़ाई लपेटने की सामग्री है, फिर टेक्स्टव्यू के भीतर का पाठ हमेशा केंद्रित होना चाहिए, फिर इसके द्वारा अपने मूल लेआउट में केंद्र बनाएं:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Hello.."/>
</RelativeLayout>
LinearLayout के लिए भी कोड समान है:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello.."/>
</LinearLayout>
और प्रो-व्याकरणिक रूप से अभिभावक RelativeLayout java कोड है, जो रन टाइम में आपकी गतिविधि में कुछ इस तरह का उपयोग करता है
TextView textView1 =(TextView)findViewById(R.id.texView1);
RelativeLayout.LayoutParams layoutParams = RelativeLayout.LayoutParams)textView1.getLayoutParams();
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
textView1.setLayoutParams(layoutParams);
हम इसे कई तरीकों से प्राप्त कर सकते हैं: -
एक्सएमएल विधि 01
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="center_vertical|center_horizontal"
android:text="@strings/text"
/>
एक्सएमएल विधि 02
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@strings/text"
/>
एक्सएमएल विधि 03
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:gravity="center"
android:text="@strings/text"
/>
एक्सएमएल विधि ०४
<TextView
android:id="@+id/textView"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_centerInParent="true"
android:text="@strings/text"
/>
जावा विधि 01
textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL);
जावा विधि ०२
textview.setGravity(Gravity.CENTER);
जावा विधि 03
textView.setTextAlignment(View.TEXT_ALIGNMENT_CENTER);
TextView गुरुत्वाकर्षण आपके मूल लेआउट के अनुसार काम करता है।
रेखीय लयआउट :
यदि आप LinearLayout का उपयोग करते हैं, तो आपको दो गुरुत्व गुण एंड्रॉइड मिलेंगे: गुरुत्वाकर्षण और एंड्रॉइड: लेआउट_ग्रेविटी
एंड्रॉइड: गुरुत्वाकर्षण: टेक्स्ट व्यू के आंतरिक पाठ के लेआउट पोशन का प्रतिनिधित्व करते हैं जबकि एंड्रॉइड: लेआउट_ग्रेविटी: मूल दृश्य में टेक्स्ट व्यू स्थिति का प्रतिनिधित्व करते हैं।
यदि आप टेक्स्ट को क्षैतिज और लंबवत केंद्र सेट करना चाहते हैं, तो नीचे दिए गए कोड का उपयोग करें
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="300dp"
android:background="@android:color/background_light"
android:layout_height="300dp">
<TextView
android:layout_width="match_parent"
android:text="Hello World!"
android:gravity="center_horizontal"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"
/>
</LinearLayout>
रिलेटिवलैट :
RelativeLayout का उपयोग करके आप TextView में संपत्ति से नीचे का उपयोग कर सकते हैं
Android: TextView में पाठ केंद्र के लिए गुरुत्वाकर्षण = "केंद्र"।
एंड्रॉइड: गुरुत्वाकर्षण = "केंद्र_हृदय" आंतरिक पाठ यदि आप क्षैतिज रूप से केंद्रित चाहते हैं।
Android: गुरुत्वाकर्षण = "center_vertical" आंतरिक पाठ यदि आप लंबवत केंद्रित चाहते हैं।
Android: layout_centerInParent = "true" यदि आप मूल दृश्य के केंद्र की स्थिति में TextView चाहते हैं। Android: layout_centerHor क्षैतिज = "सही" यदि आप मूल दृश्य के क्षैतिज केंद्र में TextView चाहते हैं। android: layout_centerVertical = "true" यदि आप मूल दृश्य के लंबवत केंद्र में TextView चाहते हैं।
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="300dp"
android:background="@android:color/background_light"
android:layout_height="300dp">
<TextView
android:layout_width="match_parent"
android:text="Hello World!"
android:gravity="center"
android:layout_centerInParent="true"
android:layout_height="wrap_content"
/>
</RelativeLayout>
इस तरह से प्रयास करें, यह काम करेगा
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal|center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAlignment="center"
/>
</LinearLayout>