de navegação Também é usada para prover informações sobre um problema de maneira rápida e fácil. Ex. Uma animação de shake pode ser usada para demonstrar um erro em um formulário.
de navegação Um dos mais importantes princípios de UI. Mostra visualmente ao usuário o contexto atual do sistema, como por exemplo animações de status de download/upload ou de alguma ação que o usuário fez, como deletar algo.
de navegação Também é muito usada para chamar a atenção do usuário para uma mudança importante, como por exemplo uma ligação recebida ou um email novo.
de navegação Usada para demonstrar ao usuário de maneira fácil a mudança entre dois estados do app, criando conexões visuais entre os mesmos. Pode ser usada para demonstrar transições hierárquicas...
pois pode se tornar irritante, principalmente quando esta transforma o processo de uso do app em algo mais lento. Até mesmo uma boa animação pode ser irritante se for usada a todo momento, por isso é importante se questionar se a animação será irritante quando vista pela “centésima” vez.
a animação usada para redimensionar uma view. Scale É a animação usada para movimentar uma view. Translate É a animação usada para rotacionar uma view. Rotate É a animação usada para alterar a visibilidade uma view. Alpha
chamado de "Easying Curves". São as as curvas que definem como uma animação vai se comportar, como aceleração, desaceleração, bounce e outros. Muito importante para dar uma movimentação mais natural à animação. Os interpolators mais usados nas animações do Material Design são FastOutSlowInInterpolator e LinearOutSlowInInterpolator.
principal listener para animações é o Animator.AnimatorListener que possui 4 métodos para serem implementados. onAnimationStart - chamado quando a animação começa. onAnimationEnd - chamado quando a animação termina. onAnimationRepeat - chamado entre as possíveis repetições da animação. onAnimationCancel - chamado quando a animação é cancelada.
api possui também um listener para escutar eventos de Pausa nas animações, o Animator.AnimatorPauseListener que possui 2 métodos para serem implementados. onAnimationPause - chamado quando a animação é pausada. onAnimationResume - chamado quando a animação recomeça após uma pausa. Dica: AnimatorListenerAdapter
é o ValueAnimator.AnimatorUpdateListener que possui um método para ser implementado. onAnimationUpdate - chamado a cada frame da animação. Ele recebe como parâmetro um ValueAnimator que será utilizado para recuperar o valor calculado para o frame da animação Conceitos Básicos Tipos de animação Interpolators Listeners Animation Sets
ele é possível coreografar várias animações e até mesmo vários sets de animação. A maneira mais comum de montar uma coreografia é usando os métodos playTogther e playSequentially que recebem listas de animações ou de sets de animações. Conceitos Básicos Tipos de animação Interpolators Listeners Animation Sets
animações personalizadas como animações de textos numéricos e de cores. Ex: ValueAnimator.ofFloat(Float...) ValueAnimator.ofInt(int...) ValueAnimator.ofArgb(int...) Importante lembrar que é necessário recuperar os valores da animação para aplicar na view desejada com o listener APIs View Animation Property Animation • ValueAnimator • ObjectAnimator Transitions
possíveis. Mas também oferece um controle bastante completo sobre as animações. Ex: TransitionManager.beginDelayedTransition(ViewGroup, transition); view.setVisibility(View.GONE); Obs: view precisa estar dentro de ViewGroup APIs View Animation Property Animation • ValueAnimator • ObjectAnimator Transitions
possíveis. Mas também oferece um controle bastante completo sobre as animações. API mínima 19 API usando a support library mínima 14 implementation 'com.android.support:transition:x.x.x' APIs View Animation Property Animation • ValueAnimator • ObjectAnimator Transitions
Anima as mudanças de posição e tamanho das views ChangeBounds Estende Visibility e faz animações de FadeIn e FadeOut de uma view. Fade Transition padrão. Aplica FadeOut, Move and Resize, and FadeIn, nessa ordem. AutoTransition
Capturar o valor inicial com o método: captureStartValues(TransitionValues transitionValues) 2 - Capturar o valor final com o método: captureEndValues(TransitionValues transitionValues) Os dois podem ser centralizados em um método genérico que captura os valores Exemplo: void captureValues(TransitionValues transitionValues) { if (transitionValues.view instanceof MyView) transitionValues.values.put(PROPNAME, myView.getValue()); } Custom Transition CaptureValues CreateAnimator