Как изменить цвета в моем StateListDrawable?

У меня есть следующий переключатель для кнопки (с двумя состояниями, регулярными и нажатыми):

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <shape> <solid android:color="#3498DB" /> <stroke android:width="1dp" android:color="#2980B9" /> <corners android:radius="0dp" /> <padding android:left="12dp" android:top="12dp" android:right="12dp" android:bottom="12dp" /> </shape> </item> <item> <shape> <solid android:color="#2980B9" /> <stroke android:width="1dp" android:color="#2980B9" /> <corners android:radius="0dp" /> <padding android:left="12dp" android:top="12dp" android:right="12dp" android:bottom="12dp" /> </shape> </item> </selector> 

Моя кнопка имеет следующее, которое указывает фон как вышеприведенный селектор:

 <Button android:id="@+id/button_LaunchShiftsGame" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/ShiftsMode" android:background="@drawable/selector_Button" style="@style/Button_Text" /> 

Мне нужно получить доступ и изменить цвета для обоих состояний из кода при загрузке Activity.

Как я могу это сделать?

  StateListDrawable gradientDrawable = (StateListDrawable) inflatedView.getBackground(); DrawableContainerState drawableContainerState = (DrawableContainerState) gradientDrawable.getConstantState(); Drawable[] children = drawableContainerState.getChildren(); LayerDrawable selectedItem = (LayerDrawable) children[0]; LayerDrawable unselectedItem = (LayerDrawable) children[1]; GradientDrawable selectedDrawable = (GradientDrawable) selectedItem.getDrawable(0); GradientDrawable unselectedDrawable = (GradientDrawable) unselectedItem.getDrawable(0); selectedDrawable.setStroke(STORKE_SIZE, NOTIFICATION_COLOR); unselectedDrawable.setStroke(STORKE_SIZE, NOTIFICATION_COLOR); 

Я использовал это, чтобы изменить ход, это может быть полезно.

Intereting Posts
Как получить путь к файлу изображения из URI в Android Lollipop? Эмуляция принудительной остановки из команд ADB / Shell Ошибка со списком активности с запущенным устройством для обработки желе (SPAN_EXCLUSIVE_EXCLUSIVE spans не может иметь нулевую длину) Где Android Account Manager хранит особые настройки учетной записи? Переключение между вкладкой с помощью группы действий, которую она хочет отобразить последним, – Tab ActivityGroup Sprite Rotation в Android с помощью Canvas.DrawBitmap. Я близка, что я делаю неправильно? Как играть в онлайн-видео на Android? Android, как объединить два запроса синтаксического анализа, используя 'OR' Проверка базы данных android sql из Eclipse Поддержка SVG на Android Декодирование HttpEntity в проблему с кодировкой строки в android Как очистить фокус и удалить клавиатуру на Android? Альтернативы для setFinishOnTouchOutside для более старого устройства Android? Загрузить текстовый файл в webview android Изменить выбор в ListView с оранжевого на зеленый