Drawable.setState () Как я могу управлять конкретным состоянием?

У меня есть такая возможность:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:state_window_focused="true" android:drawable="@drawable/seek_thumb_pressed" /> <item android:state_focused="true" android:state_window_focused="true" android:drawable="@drawable/seek_thumb_selected" /> <item android:state_selected="true" android:state_window_focused="true" android:drawable="@drawable/seek_thumb_selected" /> <item android:drawable="@drawable/seek_thumb_normal" /> 

В коде, как установить конкретное состояние моего Drawable? Я хотел бы установить его в состояние state_pressed = true.

Понял. Комментарий отсюда помог: Android: как программно обновить селектор (StateListDrawable)

Поэтому Drawable.setState() принимает массив в целых числах. Эти целые числа представляют состояние допустимого. Вы можете передать любой интересующий вас. После того, как ints передаст в соответствие «item» из списка состояний, выберете вытягиваемые ничьи в этом состоянии.

Это имеет смысл в коде:

 int[] state = new int[] {android.R.attr.state_window_focused, android.R.attr.state_focused}; minThumb.setState(state); 

Обратите внимание, что мой список состояний state_pressed="true" как state_pressed="true" и android:state_window_focused="true" . Поэтому я должен передать оба эти значения int в setState . Когда я хочу его очистить, я просто minThumb.setState(new int[]{});

Не хватает очков для комментариев, так что это просто дополнение к тому, что сказал разработчик Android. Для определенных состояний, таких как state_enabled, нет очевидного способа установить противоположное значение этого состояния (например, нет state_disabled). Чтобы указать отрицательное или противоположное состояние, просто передайте отрицательное значение ресурса для этого состояния.

 int[] state = new int[] {-android.R.attr.state_enabled}; //Essentially state_disabled 

Затем передайте этот целочисленный массив в метод setState (), как обычно.

 minThumb.setState(state); 
Intereting Posts
Android настроенная кнопка; Изменение цвета текста Размер буфера для callbackbuffer для Android-камеры должен быть в 8 раз больше, чем изображение? Запись и воспроизведение Android + громкой связи в качестве опции Проверьте, нет ли ландшафта через ADB Пакеты org.apache.http удалены на уровне API 23. Какая альтернатива? Изображение, сохраненное на SD-карте, не отображается в приложении «Галерея Android» Использование flash с веб-сайтом android Как добавить SnackBar в нижней части наложения диалога Как удалить фон (обычного) вида (Android) Android-эмулятор ABI Хранить файлы после удаления приложения для Android 32-битный или 64-битный Android SDK на Windows 64-битной ОС? Как показать мини-контроллер внизу или постоянные средства управления мультимедиа, такие как spotify или Google music в целом приложении Android: Использование dimen.xml из кода Какие шаблоны проектирования я должен изучить перед запуском Android Development