Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

एंड्रॉइड में DatePicker डायलॉग का रंग कैसे बदलें?

एंड्रॉइड में 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;

MaterialDatePicker datePicker = 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
  1. Android में View के बैकग्राउंड कलर बदलाव को एनिमेट कैसे करें? Android में View के बैकग्राउंड कलर बदलाव को एनिमेट कैसे करें?

    TransitionDrawable का उपयोग करके View के बैकग्राउंड कलर को स्मूथली एनिमेट करने का तरीका। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: लेआउट res/layout/activity_main.xml: <?xml version=1.0 encoding=utf-8?> <RelativeLayout xmlns:android=https://schemas.android.c

  1. ActionBarActivity के एक्शन बार का बैकग्राउंड रंग कैसे बदलें? ActionBarActivity के एक्शन बार का बैकग्राउंड रंग कैसे बदलें?

    Android में एक्शन बार/टूलबार का बैकग्राउंड रंग बदलना यह ट्यूटोरियल दिखाता है कि कैसे थीम और स्टाइल्स का उपयोग करके एक्शन बार (या आधुनिक Toolbar) का बैकग्राउंड रंग कस्टमाइज़ किया जाता है। चरण 1: प्रोजेक्ट बनाएं Android Studio में नया प्रोजेक्ट बनाएं। चरण 2: बेसिक लेआउट res/layout/activity_main.xml:

  1. एंड्रॉइड में ऑप्शन मेनू का बैकग्राउंड रंग कैसे बदलें एंड्रॉइड में ऑप्शन मेनू का बैकग्राउंड रंग कैसे बदलें

    स्टाइल्स और थीम्स के माध्यम से ऑप्शन मेनू का रंग बदलना एंड्रॉइड में ऑप्शन मेनू (टूलबार/एक्शन बार मेनू) का बैकग्राउंड और टेक्स्ट रंग बदलने के लिए स्टाइल्स/थीम्स का उपयोग करना सबसे सही तरीका है। यह विधि पूरे ऐप में सुसंगत स्टाइलिंग सुनिश्चित करती है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File