Cómo establecer mediante programación el atributo de estilo en una vista
Obtengo una vista del XML con el siguiente código:
Button view = (Button) LayoutInflater.from(this).inflate(R.layout.section_button, null);
Me gustaría establecer un "estilo" para el botón. ¿Cómo puedo hacerlo en Java? Ya que quiero usar varios estilos para cada botón que usaré.
Generalmente no se pueden cambiar los estilos mediante programación; Puede configurar el aspecto de una pantalla, parte de un diseño o un botón individual en su diseño XML mediante temas o estilos . Sin embargo, los temas se pueden aplicar mediante programación .
También existe algo StateListDrawable
que le permite definir diferentes elementos de diseño para cada estado en el que Button
puede estar, ya sea enfocado, seleccionado, presionado, deshabilitado, etc.
Por ejemplo, para que su botón cambie de color cuando se presiona, puede definir un archivo XML llamado res/drawable/my_button.xml
directorio como este:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/btn_pressed" />
<item
android:state_pressed="false"
android:drawable="@drawable/btn_normal" />
</selector>
Luego puede aplicar este selector a Button
configurando la propiedad android:background="@drawable/my_button"
.
Sí, puedes usar por ejemplo en un botón.
Button b = new Button(this);
b.setBackgroundResource(R.drawable.selector_test);