uso titledborder poner layouts crear con borde java android android-drawable colordrawable

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:

  1. ColorDrawable colorDrawable = new ColorDrawable ( Color.parseColor ("# ce9b2c")); `

  2. ColorDibujado colorDrawable = nuevo ColorDrawable ( 0xFFCE9B2C ); Tenga en cuenta que hay 8 dígitos hexadecimales, no 6 dígitos hexadecimales, que no funcionan. Caso todo

  3. ColorDrawable colorDrawable = new ColorDrawable (ContextCompat.getColor (mContext, R.color.default_color));

¡Seleccionandote tú!