ड्रॉएबल शेप का उपयोग करके बटन के कोने गोल बनाना
एंड्रॉइड में बटन के कोने गोल करने के लिए XML ड्रॉएबल शेप का उपयोग करना सबसे सरल और प्रभावी तरीका है। यह विधि बटन के विभिन्न स्टेट्स (दबाया गया, फोकस्ड, सामान्य) के लिए अलग-अलग स्टाइल भी परिभाषित करने देती है।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनें और प्रोजेक्ट बनाएं।
चरण 2: मुख्य लेआउट में बटन जोड़ें
res/layout/activity_main.xml में बटन जोड़ें और कस्टम बैकग्राउंड सेट करें:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="16dp"
android:text="गोल कोने वाला बटन"
android:textColor="#FFFFFF"
android:background="@drawable/mybutton"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
चरण 3: MainActivity.java
package com.app.sample;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
चरण 4: ड्रॉएबल शेप XML बनाएं (मुख्य चरण)
res/drawable/mybutton.xml बनाएं - यह फ़ाइल बटन के तीन स्टेट्स को परिभाषित करती है:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="https://schemas.android.com/apk/res/android">
<!-- दबाया गया स्टेट -->
<item android:state_pressed="true">
<shape android:shape="rectangle">
<corners android:radius="12dp" />
<stroke android:width="2dp" android:color="#4A6F6A" />
<gradient
android:angle="-90"
android:startColor="#2E4A45"
android:endColor="#5A8A82" />
</shape>
</item>
<!-- फोकस्ड स्टेट -->
<item android:state_focused="true">
<shape android:shape="rectangle">
<corners android:radius="12dp" />
<stroke android:width="2dp" android:color="#4A6F6A" />
<solid android:color="#4A7A73" />
</shape>
</item>
<!-- सामान्य/डिफ़ॉल्ट स्टेट -->
<item>
<shape android:shape="rectangle">
<corners android:radius="12dp" />
<stroke android:width="2dp" android:color="#4A6F6A" />
<gradient
android:angle="-90"
android:startColor="#7AA9A2"
android:endColor="#4A7A73" />
</shape>
</item>
</selector>
मुख्य एट्रिब्यूट्स की व्याख्या
- <corners android:radius> - कोने की गोलाई (dp में)। सभी कोनों के लिए समान रेडियस सेट करता है।
- <stroke> - बटन की बॉर्डर चौड़ाई और रंग।
- <gradient> - ग्रेडिएंट बैकग्राउंड (शुरुआत और अंत रंग)।
- <solid> - ठोस रंग बैकग्राउंड।
- state_pressed, state_focused - अलग-अलग इंटरेक्शन स्टेट्स के लिए स्टाइल।
व्यक्तिगत कोनों के लिए अलग रेडियस
यदि आपको प्रत्येक कोने के लिए अलग रेडियस चाहिए:
<corners
android:topLeftRadius="16dp"
android:topRightRadius="16dp"
android:bottomLeftRadius="4dp"
android:bottomRightRadius="4dp" />
चरण 5: AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
package="com.app.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
परिणाम देखें
ऐप चलाएं। आपको एक सुंदर ग्रेडिएंट बटन दिखाई देगा जिसके कोने गोल होंगे। बटन दबाने पर रंग गहरा होगा, फोकस होने पर ठोस रंग दिखेगा।
प्रो टिप: मटेरियल डिज़ाइन के लिएMaterialButtonका उपयोग करें जिसमें बिल्ट-इनapp:cornerRadiusएट्रिब्यूट होता है - अलग ड्रॉएबल XML की आवश्यकता नहीं होती।