Cómo establecer mediante programación el atributo de estilo en una vista

Resuelto Lint_ asked hace 54 años • 12 respuestas

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é.

Lint_ avatar Jan 01 '70 08:01 Lint_
Aceptado

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 StateListDrawableque le permite definir diferentes elementos de diseño para cada estado en el que Buttonpuede 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.xmldirectorio 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 Buttonconfigurando la propiedad android:background="@drawable/my_button".

Christopher Orr avatar Jan 06 '2010 21:01 Christopher Orr

Sí, puedes usar por ejemplo en un botón.

Button b = new Button(this);
b.setBackgroundResource(R.drawable.selector_test);
Dayerman avatar Sep 23 '2011 09:09 Dayerman