ContextCompat.GetColor no devuelve Color

Estoy intentando substituir Resources.GetColor con ContextCompat.GetColor pero el último no devuelve un color y no consigo lo que debo utilizar en vez de Resources.GetColor (que se convirtió en obsoleto de API 23). ¿Puede alguien ayudarme (ver más abajo lo que quiero lograr)?

Button.SetBackgroundColor(ContextCompat.GetColor(this, Resource.Color.LightRed)); 

Tenga en cuenta que uso Xamarin, pero si tiene respuesta en java puedo adaptarla fácilmente. ¡Gracias!

ContextCompat sólo devuelve una representación entera de su color. Debe convertirlo en un color Android dividiendo sus partes RGB. Usa algo como esto

 using Android.Graphics; public static Color GetColorFromInteger(int color) { return Color.Rgb(Color.GetRedComponent(color), Color.GetGreenComponent(color), Color.GetBlueComponent(color)); } 

Y en su método

 btn.SetBackgroundColor(GetColorFromInteger(ContextCompat.GetColor(this, Resource.Color.LightRed); 

Tuve el mismo problema creo – y lo resolvió añadiendo la anotación @SuppressWarnings("ResourceAsColor") en la parte superior del método.

La razón es que, en mi opinión, Lint no reconoce la nueva API en este momento, a pesar de que es válida. Ambos métodos devuelven un entero que representa un color resuelto. En mis pruebas Resources.GetColor () y ContextCompat.GetColor () devuelven el mismo valor. Sin embargo, al usar este último, obtengo un error en Android Studio diciendo:

 Should pass resolved color instead of resource id here: `getResources().getColor(titleColor)` 

… que no tiene sentido, porque estoy pasando un color resuelto. Es sólo un int , así que ¿cómo puedo estar equivocado … Así que en conclusión, creo que la supresión del error Lint es una forma válida de manejar la situación en este momento.

Si no está de acuerdo, por favor, levante su voz, estaría interesado.

  • Cómo persistir Button.Pressed estado en Xamarin.Android?
  • ¿Por qué no puedo acceder al punto de interrupción cuando empiezo a depurar la aplicación Android de Xamarin?
  • Arrastrar y soltar en formas Xamarin
  • Error de implementación con la aplicación Android de Xamarin en Visual studio 2015
  • ¿Cómo puedo enlazar a `ItemClick` para un` MvxLinearLayout`?
  • Pasar referencias a la intención de la actividad
  • Cómo enlazar Android TextView a evento Click con MvvmCross
  • ¿Xamarin Android ejecutará OnCreateView cuando se llama al constructor IntPtr?
  • API de Android IsConnected devolviendo TRUE tras finalizar sesión
  • Cómo configurar onclick oyente en xamarin?
  • Xamarin.Android no pudo implementar los proyectos en el emulador de Visual Studio para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.