Как я могу использовать setStateListAnimator программно для моего флажка? - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть флажок, для которого я хочу установить анимацию, например, когда пользователь нажимает флажок, он отображает анимацию.Если я установил его с помощью xml, он запускает anim на начальном экране, но я хочу, чтобы анимация запускалась только тогда, когда пользователь установил флажок.Это возможно только если я установлю это программно.

Что я уже пробовал: -

 <CheckBox
        android:id="@+id/_like_heart"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="4dp"
        android:background="@mipmap/ic_user_heart"
        android:button="@null"
        android:checked="false"
        android:stateListAnimator="@animator/enlarge" />

Есть ли альтернатива, которая может также поддерживать более низкие версии Android.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

на вашем слушателе флажка добавить этот фрагмент

 StateListAnimator stateListAnimator = AnimatorInflater.loadStateListAnimator(this, 
 R.anim.my_anim);
 yourCheckbox.setStateListAnimator(stateListAnimator );
0 голосов
/ 14 сентября 2018

Ссылка: Как использовать StateListAnimator?

В Android L добавлен новый атрибут xml для вида:

android:stateListAnimator : Устанавливает аниматор на основе состояния для просмотра. Дополнительно для создания экземпляра объекта StateListAnimator programmatically новый метод:

loadStateListAnimator(Context context, int id)

был добавлен к AnimatorInflater.

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

Ex

StateListAnimator stateListAnimator = AnimatorInflater.loadStateListAnimator(this, 
 R.anim.enlarg);
 yourCheckbox.setStateListAnimator(stateListAnimator);

Для получения дополнительной информации, пожалуйста, посетите https://developer.android.com/reference/android/animation/StateListAnimator

...