poner - titledborder java
Crear un nuevo color dibujable (5)
Como estás hablando de hex, debes comenzar con 0x
y no olvidar la opacidad.
Entonces, básicamente: 0xFFFF6666
ColorDrawable cd = new ColorDrawable(0xFFFF6666);
También puede crear un nuevo archivo colors.xml en / res y definir los colores como:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="mycolor">#FF6666</color>
</resources>
y simplemente obtener el color definido en R.color.mycolor
getResources().getColor(R.color.mycolor)
Estoy tratando de convertir un valor hexadecimal en un int para que pueda crear un nuevo color dibujable. No estoy seguro de si esto es posible, pero de acuerdo con la documentación, debería. Claramente pide
public ColorDrawable (int color)
Agregado en el nivel 1 de API Crea un nuevo ColorDrawable con el color especificado.
Parámetros de color El color para dibujar.
Por lo tanto, mi código no funciona porque recibo un error Invalid: "FF6666". ¿Algunas ideas?
int decode = Integer.decode("FF6666");
ColorDrawable colorDrawable = new ColorDrawable(decode);
Creo que debes usar:
public static int parseColor (String colorString)
Agregado en el nivel 1 de API Analice la cadena de color y devuelva el color-int correspondiente. Si la cadena no se puede analizar, arroja una excepción IllegalArgumentException. Los formatos admitidos son: #RRGGBB #AARRGGBB rojo, azul, verde, negro, blanco, gris, cian, magenta, amarillo, gris claro, gris oscuro, gris, gris claro, gris oscuro, aguamarina, fucsia, lima, granate, azul marino, verde oliva, morado, plata, trullo
Debería ser así ...
ColorDrawable cd = new ColorDrawable(0xffff6666);
Nota: utilicé 8 dígitos hexadecimales, no 6 dígitos hexadecimales. que se suman a la transparencia
Para utilizar con ContextCompat y volver a utilizar el color, puede hacer algo como esto:
ColorDrawable colorDrawable = new ColorDrawable(ContextCompat.getColor(this, R.color.white));
Siguiendo el consejo anterior, para ser un resumen de esta pregunta:
ColorDrawable colorDrawable = new ColorDrawable ( Color.parseColor ("# ce9b2c")); `
ColorDibujado colorDrawable = nuevo ColorDrawable ( 0xFFCE9B2C ); Tenga en cuenta que hay 8 dígitos hexadecimales, no 6 dígitos hexadecimales, que no funcionan. Caso todo
ColorDrawable colorDrawable = new ColorDrawable (ContextCompat.getColor (mContext, R.color.default_color));
¡Seleccionandote tú!