Я получаю представление от XML с кодом ниже:
Button view = (Button) LayoutInflater.from(this).inflate(R.layout.section_button, null);
Я хотел бы установить "стиль" для кнопки, как я могу сделать это в Java начиная с хотения использовать несколько стилей для каждой кнопки, которую я буду использовать.
Обычно стили нельзя изменить программно; можно настроить внешний вид экрана или части макета, или отдельной кнопки в XML-компоновке, используя темы или стили . Однако, темы могут быть применены программно .
Существует также такая вещь, как StateListDrawable
, которая позволяет определить различные отрисовки для каждого состояния, в котором может находиться кнопка Button
, независимо от того, сфокусирована ли она, выбрана, нажата, отключена и так далее.
Например, чтобы заставить Вашу кнопку изменить цвет после нажатия, Вы можете определить XML файл с именем res/drawable/my_button.xml
каталог следующим образом:
<?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>
Затем Вы можете применить этот селектор к кнопке Button
, установив свойство android:background="@drawable/my_button"
.