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

est-il possible de changer la couleur par défaut du dialogue DatePicker et TimePicker ?

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 changeant seulement la couleur de fond, je veux changer la couleur argentée par défaut à la fois date et heure picker.

N'importe quelle aide s'il vous plaît.

style="@style/date_picker"
android:background="#6495ED"
22
demandé sur Willi Mentzel 2012-06-18 09:52:06

4 réponses

la meilleure façon de changer la boîte de dialogue picker est d'y ajouter du 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.

20
répondu Godwin 2016-09-16 15:36:10

, Vous devez créer un thème personnalisé et l'enregistrer dans certains répertoires enfin ce thème comme celui par défaut de l'application

tout d'abord, dans les valeurs ajouter un thèmes.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 mettez un thème.xml comme ceci

<?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 la réserve répertoire et créer un thème.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
répondu Aditya 2013-12-03 11:41:41

je pense qu'il n'y a aucun moyen de changer la couleur grise des vieux widgets picker natifs facilement en XML.

je vous propose d'utiliser la bibliothèque HoloEverywhere pour que le téléscripteur et le téléscripteur aient un bel aspect sur toutes les plateformes Android 2.1+.

3
répondu Julia Hexen 2013-12-08 14:16:27

vous pouvez changer le thème de votre date-picker en changeant le thème comme ceci.

changez les articles selon vous.

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

changez les articles selon vous. et mettez ce thème à votre style de collecte de données

style="@style/date_picker"
3
répondu Ando Masahashi 2013-12-09 08:28:49