programacion - android establecer botón de fondo mediante programación
manual android studio avanzado (4)
Descubrí que Android Studio me advierte que getColor()
está en desuso al intentar hacer esto:
Button11.setBackgroundColor(getResources().getColor(R.color.red))
Entonces, encontré que el método a continuación es la solución simple y actualizada:
Button11.setBackgroundColor(ContextCompat.getColor(context, R.color.red))
Desea evitar la codificación rígida en el argumento de color, ya que se considera un estilo de código incorrecto.
Editar: Después de usar setBackgroundColor()
con mi propio botón, vi que el relleno del botón interno se expandió. No pude encontrar ninguna forma de cambiarlo a tener el alto y el ancho establecidos en "wrap_content". Tal vez es un error.
Fuente: https://stackoverflow.com/a/32202256/6030520
Me gustaría saber cómo configurar el color del botón programáticamente. He codificado lo siguiente, pero falla:
Button11.setBackgroundColor(R.color.red);
¡¡Gracias!!
Viejo hilo, pero aprendió algo nuevo, espero que esto pueda ayudar a alguien.
Si desea cambiar el color de fondo pero conserva otros estilos, a continuación puede ser útil.
button.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.colorAccent), PorterDuff.Mode.MULTIPLY);
R.color.red
es una ID (que también es un int
), pero no es un color.
Use uno de los siguientes en su lugar:
// If you''re in an activity:
Button11.setBackgroundColor(getResources().getColor(R.color.red));
// OR, if you''re not:
Button11.setBackgroundColor(Button11.getContext().getResources().getColor(R.color.red));
O alternativamente:
Button11.setBackgroundColor(Color.RED); // From android.graphics.Color
O bien, para obtener más habilidades profesionales:
Button11.setBackgroundColor(0xFFFF0000); // 0xAARRGGBB
button.setBackgroundColor(getResources().getColor(R.color.red);
Establece el color de fondo para esta vista. Parámetros: colorear el color del fondo
R.color.red
es una referencia generada en la compilación en gen.