Saltar al contenido

¿Cómo puedo obtener color-int del recurso de color?

Solución:

Puedes usar:

getResources().getColor(R.color.idname);

Consulte aquí cómo definir colores personalizados:

http://sree.cc/google/android/defining-custom-colors-using-xml-in-android

EDITAR (1):
Ya que getColor(int id) es obsoleto ahora, esto debe usarse:

ContextCompat.getColor(context, R.color.your_color);

(agregado en la biblioteca de soporte 23)

EDITAR (2):

El siguiente código se puede utilizar tanto antes como después de Marshmallow (API 23)

ResourcesCompat.getColor(getResources(), R.color.your_color, null); //without theme

ResourcesCompat.getColor(getResources(), R.color.your_color, your_theme); //with theme

Basado en el nuevo Biblioteca de soporte de Android (y esta actualización), ahora debes llamar a:

ContextCompat.getColor(context, R.color.name.color);

Según la documentación:

public int getColor (int id)

Este método fue obsoleto en Nivel de API 23. Utilice getColor (int, Theme) en su lugar

Es la misma solución para getResources().getColorStateList(id):

Tienes que cambiarlo así:

ContextCompat.getColorStateList(getContext(),id);

EDITAR 2019

Con respecto a ThemeOverlay usa el contexto de la vista más cercana:

val color = ContextCompat.getColor(
  closestView.context,
  R.color.name.color
)

De esta manera, obtendrá el color correcto según su ThemeOverlay.

Especialmente necesario cuando en la misma actividad usas diferentes temas, como tema oscuro / claro. Si desea comprender más sobre temas y estilos, se sugiere esta charla: Desarrollo de temas con estilo

Nick Butcher - Droidcon Berlin - Desarrollando temas con estilo

Define tu color

valores / color.xml

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

    <!-- color int as #AARRGGBB (alpha, red, green, blue) -->
    <color name="orange">#fff3632b</color>
    ...
    <color name="my_view_color">@color/orange</color>

</resources>

Obtenga el color int y configúrelo

int backgroundColor = ContextCompat.getColor(context, R.color.my_view_color);
// Color backgroundColor = ... (Don't do this. The color is just an int.)

myView.setBackgroundColor(backgroundColor);

Ver también

  • Cómo establecer el color de fondo de una vista
  • Documentos de color
  • Documentos de diseño de estilo de color
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *