web-dev-qa-db-fra.com

Comment changer la couleur par défaut des boîtes de dialogue DatePicker et TimePicker dans Android?

Est-il possible de changer la couleur par défaut de DatePicker et TimePicker dialog?

C'est le code que j'ai essayé

<DatePicker
                    style="@style/date_picker"
                    Android:background="#6495ED"
                    Android:id="@+id/DatePicker"
                    Android:layout_width="fill_parent"
                    Android:layout_height="wrap_content"
                    Android:layout_marginTop="5dp"
                    Android:layout_marginBottom="5dp"
                    Android:layout_marginLeft="5dip"
                    Android:layout_marginRight="5dip" />

<TimePicker
                    Android:id="@+id/TimePicker"
                    Android:layout_width="fill_parent"
                    Android:layout_height="wrap_content"
                    Android:layout_marginTop="5dp"
                    Android:layout_marginBottom="5dp"
                    Android:layout_marginLeft="5dip"
                    Android:layout_marginRight="5dip" />

Au-dessous de deux lignes ne modifiant que la couleur d'arrière-plan, je souhaite modifier la couleur argent par défaut du sélecteur de date et d'heure. 
Toute aide s'il vous plaît.

style="@style/date_picker"
Android:background="#6495ED"
22
KKC

La meilleure façon de changer la boîte de dialogue du sélecteur consiste à lui ajouter un style personnalisé.

<style name="TimePickerTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorAccent">@color/color_primary</item>
    <item name="Android:layout_width">wrap_content</item>
    <item name="Android:layout_height">wrap_content</item>
</style>

TimePickerDialog timePicker = new TimePickerDialog(mContext, R.style.TimePickerTheme, fromListener, hour, min, false);

A parfaitement fonctionné pour moi.

22
Godwin

Vous devez créer un thème personnalisé et l'enregistrer dans certains répertoires pour le définir comme thème par défaut pour l'application.

Tout d'abord, dans les valeurs, ajoutez un themes.xml comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@Android:style/Theme.Light.NoTitleBar">
        <!-- Any customizations for your app running on pre-3.0 devices here -->
    </style>
</resources> 

Ensuite, créez un répertoire avec le nom "values-v11" (Android 3.0+) dans le répertoire res et placez un themes.xml comme celui-ci.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@Android:style/Theme.Holo.Light">
        <!-- Any customizations for your app running on 3.0+ devices here -->
    </style>
</resources>

Enfin, créez un répertoire avec le nom "values-v14" (Android 4.0+) dans le répertoire res et créez un themes.xml.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@Android:style/Theme.DeviceDefault.Light.NoActionBar">
        <!-- Any customizations for your app running on 4.0+ devices here -->
    </style>
</resources>

Enfin dans votre manifeste.xml

<application
        ...
        Android:theme="@style/MyAppTheme">
6
Aditya

Je pense qu'il n'y a aucun moyen de changer facilement la couleur grise des anciens widgets de sélecteur natif en XML.

Je vous propose d’utiliser la bibliothèque HoloEverywhere pour que DatePicker et TimePicker aient l’air vraiment sympa sur toutes les plateformes Android 2.1+.

3
Julia Hexen

vous pouvez changer le thème de votre sélecteur de date en changeant de thème comme celui-ci.

changer les articles selon vous.

<style name="date_picker" parent="@Android:style/Widget.DeviceDefault.DatePicker">
<item name="Android:divider">@drawable/dialog_divider</item>

modifiez les éléments en fonction de vous ..__ et définissez ce thème selon votre style de sélecteur de données

style="@style/date_picker"
3
Ando Masahashi

Pour le sélecteur de date, ajoutez ces codes à color.xml

  <color name="mdtp_accent_color">#070B82</color>
  <color name="mdtp_accent_color_dark">#0D105E</color>

Pour les deux, vous pouvez définir le style dans style.xml

 <style name="TimePickerTheme" parent="Theme.AppCompat.Light.Dialog">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/blue</item>
</style>

et définir le style en xml:

 Android:theme="@style/MyAppTheme"

ou par programme:

TimePickerDialog timePicker = new TimePickerDialog (mContext, R.style.TimePickerTheme, fromListener, hour, min, false);

0
Maryam Azhdari