TransitionDrawable: автоматически обратный переход после его завершения

я хочу выделить недавно добавленные элементы ListView с приятным эффектом. Я думал, что это просто и легко, но я наткнулся на проблему:

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

TransitionDrawable имеет методы для воспроизведения анимации вперед и назад, но ни один из них не может быть использован для синхронизации. Я ожидал, что появится возможность указать обратный вызов для завершения анимации, что-то вроде:

 TransitionDrawable transition = (TransitionDrawable) view.getBackground();
 transition.startTransition(500, new TransitionCompleteListener(){
               public void completed()
               { 
                    transition.reverseTransition(500);
               }
       });

Но ничего подобного не поддерживает класс TransitionDrawable.

Проблема: как воспроизвести анимацию TransitionDrawable, а когда она закончится - сразу воспроизвести ее в обратном направлении? У меня была идея использовать класс Timer для задержки выполнения обратной части анимации, но это решение выглядит слишком тяжелым для такой простой вещи.

Или, может быть, мне стоит использовать что-то отличное от TransitionDrawable? Я бы хотел избежать использования Property Animations, так как я хочу поддерживать старые устройства (и PA доступны с Honeycomb).

9
задан user1234567 30 December 2011 в 16:49
поделиться