Preferencia setIcon a ColorDrawable no funciona en Android 5.0 Lollipop

En mi aplicación, utilizo la línea siguiente para distinguir algunas preferencias:

preference.setIcon(new ColorDrawable(color)); 

En las versiones de Android anteriores a Lollipop funciona bien y la preferencia muestra un icono cuadrado del color seleccionado, pero en Lollipop no se muestra ninguna.

¿Alguna idea de cómo resolverlo?

Gracias

Aquí hay una solución que está funcionando para mí:

 preference.setIcon(getPreferenceIcon(color)); function Drawable getPreferenceIcon(int color) { if (Build.VERSION.SDK_INT < 21) return new ColorDrawable(color); int bitmap_size = 64; Bitmap bitmap = Bitmap.createBitmap(bitmap_size, bitmap_size, Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); Paint paint = new Paint(); paint.setColor(color); canvas.drawRect(new Rect(0, 0, bitmap_size, bitmap_size), paint); return new BitmapDrawable(getResources(), bitmap); } 

He aquí una versión simplificada de la respuesta de The Matrix, he eliminado la verificación de la versión, ya que tampoco funcionaba correctamente en Ice Cream Sandwich (se mostró una línea delgada, no un cuadrado):

 private Drawable getPreferenceIcon(int color) { int size = 200;// Set to a big size to fit all screens, will be contained anyway in the preference row Bitmap bitmap = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); bitmap.eraseColor(color); return new BitmapDrawable(getResources(), bitmap); } 
  • ¿Cómo manejar texto largo en las preferencias de Android?
  • Método de actividad de preferencias obsoletas
  • Uso de findviewbyid en preferenciaactividad
  • ¿Cómo cambiar el estado de un elemento de preferencia de fuera de PreferenceActivity?
  • Android: cómo abrir un cuadro de diálogo ListPreference desde fuera de PreferenceActivity / PreferenceFragment?
  • ¿Cómo escuchar los cambios de preferencia dentro de un archivo PreferenceFragment?
  • Mi var pública es invisible a su primo
  • NullPointerException al llamar a RingTonePreference en Samsung Galaxy S
  • ¿Cómo agregar un botón a una PreferenceScreen?
  • Cómo cambiar el estilo de texto en el fragmento de preferencia
  • PreferenceFragment superpone 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.