Recibo valores de color hexadecimal de un servidor (en este formulario #xxxxxx, ejemplo #000000para negro)
¿Cómo convierto esto a un valor entero?
Intenté hacer Integer.valueOf("0x" + passedColor.substring(1, passedColor.length()))para obtener un resultado aún más hextástico 0x000000, pero esto no se interpreta como un intaquí, ¿alguna otra sugerencia?
Recibo un error: 08-03 21:06:24.673: ERROR/AndroidRuntime(20231): java.lang.NumberFormatException: unable to parse '0x00C8FBFE' as integer
Estoy usando el SDK de Android para su setBackgroundColor(int color)función, que toma, como habrás adivinado, un valor de color entero.
Esto es lo OPUESTO de esta pregunta: ¿Cómo convertir un número entero de color en una cadena hexadecimal en Android?

valueOfmétodo de dos argumentos , donde especifica la entrada de cadena (sin el #, por supuesto) y la base, que especifica la base.Integer.valueOf(passedColor.substring(1, passedColor.length()), 16)¡Esto se puede hacer con cualquier base entera! download.oracle.com/javase/6/docs/api/java/lang/… , int)Respuestas:
La verdadera respuesta es usar:
Color.parseColor(myPassedColor)en Android,myPassedColorsiendo elhexvalor como#000o#000000o#00000000.Sin embargo, esta función no admite valores hexadecimales taquigráficos como
#000.fuente
#000. Ver documentación#ccc. ¿Hay alguna otra manera?La respuesta es realmente simple, en Android, si desea convertir el color hexadecimal en int, solo use la clase de color de Android , el ejemplo se muestra a continuación
esto es para el color gris claro
Color.parseColor("#a8a8a8");Eso es todo y obtendrás tu resultado.
fuente
Integer.parseInt(myString.replaceFirst("#", ""), 16)fuente
parseIntlo que fallará si lo encuentra en la entrada.parseColor(). Estás muy en lo correcto.Tengo el mismo problema en el que encontré algún color en forma
#AAAAAAy quiero convertirlo en una forma que Android pueda utilizar. Descubrí que puedes usarlo0xFFAAAAAApara que Android pueda decir automáticamente el color. Note que el primeroFFes reveladoralpha. Espero eso ayudefuente
La respuesta real es la más simple y fácil ...
String white = "#ffffff"; int whiteInt = Color.parseColor(white);fuente
Estaba enfrentando el mismo problema. De esta manera pude resolverlo. Como dijo CQM, usar Color.parseColor () es una buena solución a este problema.
Aquí está el código que usé:
this.Button_C.setTextColor(Color.parseColor(prefs.getString("color_prefs", String.valueOf(R.color.green))));En este caso, mi objetivo era cambiar el color del texto del Botón (Button_C) cuando cambio la selección de color de mis Preferencias (color_prefs).
fuente
Sobre la base de CQM 's respuesta y en ovokerie-ogbeta ' s respuesta a otra pregunta se me ha ocurrido con esta solución:
if (colorAsString.length() == 4) { // #XXX colorAsString = colorAsString.replaceAll("#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])", "#$1$1$2$2$3$3"); } int color = Color.parseColor(colorAsString);fuente
Obtenga el código de color de preferencias compartidas en cadena, luego conviértalo a entero y agregue color de fondo de diseño:
sharedPreferences = getSharedPreferences(mypref, Context.MODE_PRIVATE); String sw=sharedPreferences.getString(name, ""); relativeLayout.setBackgroundColor(Color.parseColor(sw));fuente
Prueba esto, crea dibujables en tu recurso ...
<shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="@color/white"/> <size android:height="20dp" android:width="20dp"/> </shape>luego usa ...
con color ... "#FFFFFF"
si el color es transparente use ... setAlpha
mView1.setAlpha(x);con x float 0-1 Ej (0.9f)Buena suerte
fuente