Android Material Design Datepicker con AppCompat

Estoy tratando de agregar el nuevo diseño de material de Android 5.0 Datepicker a mi aplicación pre 5.0 con AppCompat. he añadido

compile "com.android.support:appcompat-v7:21.0.0" 

A mi archivo build.gradle y actualizé mi tema a:

 <?xml version="1.0" encoding="utf-8"?> 

 <style name="AppTheme.Base" parent="@style/Theme.AppCompat.Light"> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item> </style> 

Pero el Datepicker todavía se parece a esto:
Viejo datepicker
Y no así:
Diseño del material datepicker

¿Puede alguien decirme cómo conseguir que el nuevo datepicker funcione en dispositivos pre 5.0?

Gracias por adelantado.

Actualizar:

Como bien señalado por jfcartier, ahora también hay MaterialDateTimePicker . Es probablemente una solución más agradable que la de abajo, ya que tiene una API agradable y agradable.


Podrías probar la biblioteca android-betterpickers . Tiene un widget CalendarDatePickerDialog que se parece al que desea. Proporciona un tema ligero y oscuro, pero para personalizar los colores tendrías que añadirlo como un proyecto de biblioteca y cambiar el código tú mismo.

El uso es bastante sencillo una vez que agregue la biblioteca a su proyecto.

  // Create date picker listener. CalendarDatePickerDialog.OnDateSetListener dateSetListener = new CalendarDatePickerDialog.OnDateSetListener() { @Override public void onDateSet(CalendarDatePickerDialog dialog, int year, int monthOfYear, int dayOfMonth) { // Set date from user input. Calendar date = Calendar.getInstance(); date.set(Calendar.HOUR_OF_DAY, 9); date.set(Calendar.MINUTE, 0); date.set(Calendar.YEAR, year); date.set(Calendar.MONTH, monthOfYear); date.set(Calendar.DAY_OF_MONTH, dayOfMonth); // Do as you please with the date. } }; // Create dismiss listener. CalendarDatePickerDialog.OnDialogDismissListener dismissListener = new CalendarDatePickerDialog.OnDialogDismissListener() { @Override public void onDialogDismiss(DialogInterface dialoginterface) { // Do something when the user dismisses the dialog. } }; // Show date picker dialog. CalendarDatePickerDialog dialog = new CalendarDatePickerDialog(); dialog.setOnDateSetListener(dateSetListener); dialog.setOnDismissListener(dismissListener); dialog.setThemeDark(false); dialog.show(getSupportFragmentManager(), "DATE_PICKER_TAG"); 

El resultado final debe parecerse a esto (lo siento por la mala calidad).

Selector de calendario AOSP

Me gustó esta biblioteca. Es un clon de Flavien Laurent Data y Time Picker con algunas mejoras. Ambos se basan en el buscador oficial de fecha y hora de Google para Android 4.3 o superior, pero adaptado para Android 2.1 o superior.

  • Lollipop: botón desactivado -> ¿qué estilo?
  • Estilo TextView como un Spinner con appcompat v21
  • Barra de herramientas con calendario
  • FloatingActionButton expandir en una nueva actividad
  • ¿Cómo puedo crear un widget de interfaz de usuario de diseño de material de Android?
  • Estilo de la barra de herramientas de Android Spinner
  • Actionbar transparente con AppCompat-v7 21
  • Barra de herramientas de AppCompat: establece el tema de la barra de herramientas desde el tema superior
  • AppCompat ActionBar tema giratorio desplegable
  • Diseño del menú emergente en Android 5.0
  • Android BottomSheet: Está buscando bajo la barra de herramientas
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.