Desidero ingrandire gli oggetti ListView appena aggiunti con un bell'effetto. Ho pensato che fosse semplice & facile, ma mi sono accontentato di un problema:TransitionDrawable: esegue automaticamente l'inversione della transizione una volta completata
Voglio riprodurre l'animazione TransitionDrawable e una volta completato - riavvolgilo. Il nuovo oggetto sarà highlited per un momento, quindi si fonderà con il resto.
TransitionDrawable dispone di metodi per riprodurre l'animazione in avanti e all'indietro, ma nessuna che potrebbe essere utilizzata per la sincronizzazione. Mi aspettavo una possibilità di specificare una funzione di callback per il completamento di animazione, qualcosa come:
TransitionDrawable transition = (TransitionDrawable) view.getBackground();
transition.startTransition(500, new TransitionCompleteListener(){
public void completed()
{
transition.reverseTransition(500);
}
});
Ma niente di tutto questo è supportato dalla classe di TransitionDrawable.
Il problema è: come si gioca all'animazione TransitionDrawable e, al termine, si riproduce immediatamente all'indietro? Ho avuto l'idea di usare la classe Timer
per ritardare l'esecuzione della parte all'indietro dell'animazione, ma questa soluzione sembra un po 'troppo pesante per una cosa così semplice.
O forse dovrei usare qualcosa di diverso da TransitionDrawable? Mi piacerebbe evitare l'uso di animazioni di proprietà, dal momento che voglio supportare i dispositivi più vecchi (e PA sono disponibili da Honeycomb).
Hmm ... L'utilizzo di un'interpolazione potrebbe funzionare se si impostasse il colore di sfondo di un'intera ListView sul colore utilizzato per gli elementi di evidenziazione e si impostasse il colore di tutte le righe su bianco. Quindi, manipolando il valore alfa di una riga specifica, otterrei un effetto highliht. ma l'idea di sottoclasse TransitionDrawable sembra migliore, più pulita e solo più "giusta". Ho guardato la fonte ora e sembra abbastanza facile implementare ciò di cui ho bisogno. Aggiornerò la mia domanda con una soluzione quando la codificherò, ora ho bisogno di tornare alla mia tesi di laurea (non legata a questo ofc - è un progetto di hobby). Vinci la taglia. – user1234567