एंड्रॉइड में पूरी तरह गोल (कैप्सूल/पिल) आकार का EditText बनाना
यह ट्यूटोरियल दिखाता है कि ShapeDrawable (XML) का उपयोग करके पूरी तरह गोल कोनों वाला EditText कैसे बनाएं - मटेरियल डिजाइन आउटलाइन्ड टेक्स्ट फील्ड स्टाइल।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनें।
चरण 2: लेआउट (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:layout_marginTop="30dp"
tools:context=".MainActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
android:paddingTop="12dp"
android:paddingBottom="12dp"
android:background="@drawable/background"
android:hint="गोल EditText"
android:textSize="16sp" />
</LinearLayout>
चरण 3: शेप ड्रॉएबल (drawable/background.xml)
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="https://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF" />
<stroke
android:width="2dp"
android:color="#2196F3" />
<corners
android:radius="28dp" /> <!-- आधी ऊंचाई के बराबर -->
<padding
android:left="16dp"
android:top="8dp"
android:right="16dp"
android:bottom="8dp" />
</shape>
मुख्य बिंदु
android:radius="28dp"- ऊंचाई का आधा (56dp/2) = पूरी तरह गोल- न्यूनतम ऊंचाई
android:minHeight="56dp"सेट करें - पैडिंग आंतरिक स्पेसिंग के लिए
- स्ट्रोक रंग आपके ऐप के प्राइमरी कलर से मेल खाना चाहिए
फोकस स्टेट के लिए सेलेक्टर (एडवांस्ड)
<!-- drawable/edittext_background.xml -->
<selector xmlns:android="https://schemas.android.com/apk/res/android">
<!-- फोकस्ड स्टेट -->
<item android:state_focused="true">
<shape>
<solid android:color="#FFFFFF" />
<stroke android:width="2dp" android:color="#1976D2" />
<corners android:radius="28dp" />
</shape>
</item>
<!-- एरर स्टेट -->
<item android:state_enabled="false">
<shape>
<solid android:color="#F5F5F5" />
<stroke android:width="2dp" android:color="#BDBDBD" />
<corners android:radius="28dp" />
</shape>
</item>
<!-- डिफॉल्ट स्टेट -->
<item>
<shape>
<solid android:color="#FFFFFF" />
<stroke android:width="2dp" android:color="#90CAF9" />
<corners android:radius="28dp" />
</shape>
</item>
</selector>
मटेरियल कंपोनेंट्स विकल्प (अनुशंसित)
<!-- build.gradle -->
implementation "com.google.android.material:material:1.9.0"
<!-- लेआउट में -->
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="मटेरियल आउटलाइन्ड">
<com.google.android.material.textfield.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
लाभ मटेरियल TextInputLayout के
- बिल्ट-इन लेबल एनिमेशन
- एरर/हेल्पर टेक्स्ट सपोर्ट
- काउंटर/पासवर्ड टॉगल
- एक्सेसिबिलिटी सपोर्ट
- थीमिंग आसान
ऐप टेस्ट करें
चलाएं - नीले बॉर्डर वाला पूरी तरह गोल EditText दिखेगा। फोकस पर बॉर्डर गहरा नीला होगा।