Подтвердить что ты не робот

Переходы селектора/состояния анимации

У меня есть простой селектор для моего 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>

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

Если вы запустите example в демонстрациях API, вы увидите очевидную анимацию fade-in/fade-out, в то время как активированное состояние вида будет изменено.

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

Спасибо заранее.

EDIT:

Я предполагаю, что нашел что-то полезное там 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. Однако это не совсем то, что я хочу. Я хочу объявить настраиваемые анимации для перехода между выводами состояния, поскольку анимация fade-in/fade-out не хорошо выглядите для моих чертежей.

4b9b3361

Ответ 3

Вы хотите, чтобы вы исчезли?

Я предполагаю, что это будет то же самое, что и как работает 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);