एंड्रॉइड में DatePicker डायलॉग/व्यू का रंग कस्टमाइज़ करना
यह ट्यूटोरियल DatePicker विजेट और DatePickerDialog दोनों के रंग बदलने के तरीकों को कवर करता है।
विधि 1: DatePicker विजेट (XML में सीधे)
<DatePicker
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:background="#6495ED"
android:calendarTextColor="#FFFFFF"
android:headerBackground="#1565C0"
android:dayOfWeekBackground="#1E88E5"
android:yearListSelectorColor="#FFD54F" />
विधि 2: DatePickerDialog थीम (स्टाइल्स के माध्यम से)
res/values/styles.xml
<style name="CustomDatePickerDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="colorAccent">#FF5722</item> <!-- हेडर/सलेक्शन रंग -->
<item name="colorPrimary">#E64A19</item>
<item name="colorPrimaryDark">#BF360C</item>
<item name="android:windowBackground">@android:color/white</item>
<item name="android:textColorPrimary">#212121</item>
</style>
Java कोड में उपयोग
import android.app.DatePickerDialog;
import android.os.Bundle;
import android.widget.DatePicker;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.Calendar;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// DatePicker विजेट (लेआउट में)
DatePicker datePicker = findViewById(R.id.datePicker);
datePicker.setOnDateChangedListener((view, year, month, dayOfMonth) -> {
Toast.makeText(this, "चुनी गई तारीख: " + dayOfMonth + "/" + (month + 1) + "/" + year, Toast.LENGTH_SHORT).show();
});
}
// DatePickerDialog दिखाने के लिए मेथड
private void showDatePickerDialog() {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH);
int day = calendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(
this,
R.style.CustomDatePickerDialog, // कस्टम थीम
(view, selectedYear, selectedMonth, selectedDay) -> {
Toast.makeText(this, "तारीख: " + selectedDay + "/" + (selectedMonth + 1) + "/" + selectedYear, Toast.LENGTH_SHORT).show();
},
year, month, day
);
dialog.show();
}
}
विधि 3: MaterialDatePicker (मॉडर्न, अनुशंसित)
Material Components लाइब्रेरी का उपयोग करके बेहतर UI और कस्टमाइज़ेशन:
build.gradle
implementation "com.google.android.material:material:1.10.0"
उपयोग
import com.google.android.material.datepicker.MaterialDatePicker; import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener; MaterialDatePickerdatePicker = MaterialDatePicker.Builder.datePicker() .setTitleText("तारीख चुनें") .setSelection(MaterialDatePicker.todayInUtcMilliseconds()) .setTheme(R.style.CustomMaterialDatePicker) .build(); datePicker.addOnPositiveButtonClickListener((MaterialPickerOnPositiveButtonClickListener ) selection -> { String formattedDate = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault()).format(new Date(selection)); Toast.makeText(this, "चुनी गई: " + formattedDate, Toast.LENGTH_SHORT).show(); }); datePicker.show(getSupportFragmentManager(), "DATE_PICKER");
res/values/styles.xml - Material थीम
<style name="CustomMaterialDatePicker" parent="ThemeOverlay.MaterialComponents.MaterialCalendar">
<item name="colorPrimary">#673AB7</item>
<item name="colorOnPrimary">#FFFFFF</item>
<item name="colorSurface">#FFFFFF</item>
<item name="colorOnSurface">#212121</item>
</style>
DatePicker विजेट के लिए मुख्य XML एट्रिब्यूट्स
| एट्रिब्यूट | विवरण |
|---|---|
android:headerBackground |
हेडर (महीना/वर्ष) का बैकग्राउंड |
android:calendarTextColor |
कैलेंडर दिनों का टेक्स्ट रंग |
android:dayOfWeekBackground |
सप्ताह के दिनों की पंक्ति का बैकग्राउंड |
android:yearListSelectorColor |
वर्ष चयनकर्ता का सलेक्शन रंग |
android:datePickerMode |
spinner या calendar |