Esta pregunta surge de una serie de búsquedas relacionadas con color hexadecimal por lo que se agregue un resumen aquí.
color de int
colores Hex tomar la forma RRGGBB
o AARRGGBB
(alfa, rojo, verde, azul). En mi experiencia, al usar un int
directamente, necesita usar el formulario completo AARRGGBB
. Si solo tiene el formulario RRGGBB
, simplemente póngalo como prefijo con FF
para que el alfa (transparencia) sea completamente opaco. Aquí es cómo lo configuraría en código. Usando 0x
en la base significa que es hexadecimal y no de base 10.
int myColor = 0xFF3F51B5;
myView.setBackgroundColor(myColor);
color de cadena
Como otros han señalado, se puede utilizar como tal Color.parseString
int myColor = Color.parseColor("#3F51B5");
myView.setBackgroundColor(myColor);
Observe que la cadena debe comenzar con un #
. Ambos formatos RRGGBB
y AARRGGBB
son compatibles.
color a partir de XML
En realidad debería estar recibiendo sus colores a partir de XML siempre que sea posible. Esta es la opción recomendada porque hace que sea mucho más fácil hacer cambios de color en su aplicación. Si configura un montón de colores hexadecimales en todo su código, entonces es un gran dolor tratar de cambiarlos más tarde.
El diseño del material de Android tiene paladares de colores con los valores hexadecimales ya configurados.
Estos colores del tema se utilizan a lo largo de su aplicación y tener este aspecto:
colores.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="primary">#3F51B5</color>
<color name="primary_dark">#303F9F</color>
<color name="primary_light">#C5CAE9</color>
<color name="accent">#FF4081</color>
<color name="primary_text">#212121</color>
<color name="secondary_text">#757575</color>
<color name="icons">#FFFFFF</color>
<color name="divider">#BDBDBD</color>
</resources>
Si usted necesita colores adicionales, una buena práctica a seguir es definir su color en dos pasos en XML. Primero nombra el color del valor hexadecimal y luego nombra un componente de tu aplicación que debería obtener un cierto color. Esto hace que sea más fácil ajustar los colores más tarde. De nuevo, esto está en colors.xml.
<color name="orange">#fff3632b</color>
<color name="my_view_background_color">@color/orange</color>
Luego, cuando se desea ajustar el color en el código, haga lo siguiente:
int myColor = ContextCompat.getColor(context, R.color.my_view_background_color);
myView.setBackgroundColor(myColor);
colores predefinidos Android
La clase Color viene con una serie de constantes de color predefinidos. Puedes usarlo así
int myColor = Color.BLUE;
myView.setBackgroundColor(myColor);
Otros colores son
Color.BLACK
Color.BLUE
Color.CYAN
Color.DKGRAY
Color.GRAY
Color.GREEN
Color.LTGRAY
Color.MAGENTA
Color.RED
Color.TRANSPARENT
Color.WHITE
Color.YELLOW
Notas
duplicado posible de [la conversión de la secuencia del color android en tiempo de ejecución en int] (http://stackoverflow.com/questions/3849607/converting-android -color-string-in-runtime-into-int) –