Селектор анимации / переходы между состояниями - PullRequest
36 голосов
/ 10 февраля 2012

У меня есть простой селектор для моего ListView

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/yellow_arc" android:state_activated="true"/>
    <item android:drawable="@drawable/yellow_nonarc" android:state_activated="false"/>

</selector>

Я хочу анимировать переход между этими объектами рисования, когда состояние видов меняется с активированного на неактивированный и наоборот.

Если вы запустите пример в демоверсиях API, вы увидите очевидную анимацию постепенного появления / исчезновения при изменении активированного состояния представления.

Итак, что я хочупользовательская анимация при изменении состояния представления.Я думаю, что это должно быть сделано через XML, но я не мог найти способ.

Заранее спасибо.

РЕДАКТИРОВАТЬ:

Полагаю, я нашел что-то полезное, есть activated_background.xml в \Android\android-sdk\platforms\android-API_VERSION\data\res\drawable, который включает в себя

<selector xmlns:android="http://schemas.android.com/apk/res/android"
        android:exitFadeDuration="@android:integer/config_mediumAnimTime">
    <item android:state_activated="true" android:drawable="@android:drawable/list_selector_background_selected" />
    <item android:drawable="@color/transparent" />
</selector>

Так что пример в демонстрационных программах API, реализующих эту анимацию затухания путем объявления exitFadeDuration.Тем не менее, это не совсем то, что я хочу .. Я хочу объявить пользовательские анимации для перехода между рисоваемыми состояниями, так как анимация постепенного появления / исчезновения выглядит не очень хорошодля моих рисовалок.

Ответы [ 3 ]

6 голосов
/ 06 ноября 2015

Добавлено в API 21 «StateListAnimator»

http://developer.android.com/reference/android/animation/StateListAnimator.html

Я знаю, что это старый вопрос, но это может помочь будущим людям, желающим это сделать.

3 голосов
/ 23 мая 2014

Я думаю, TransitionDrawable может помочь вам в этом.

Вы можете проверить ответ здесь: Анимированное изменение цвета фона представления на Android

0 голосов
/ 10 февраля 2012

Это затухание, которое вы хотите?

Полагаю, это будет так же, как работает textSwitcher, может, вместо этого вы захотите изменить его на ViewSwitcher, затухание выполняется программно


Animation in = AnimationUtils.loadAnimation(this,
                android.R.anim.fade_in);
        Animation out = AnimationUtils.loadAnimation(this,
                android.R.anim.fade_out);

        mSwitcher1.setInAnimation(in);
        mSwitcher1.setOutAnimation(out); 

...