Um guia completo para animações do Android
As animações do Android permitem adicionar efeitos visuais, transições e movimentos aos elementos do seu aplicativo, criando uma experiência de usuário mais dinâmica e interativa.
Neste artigo, exploraremos o mundo das animações do Android e como você pode usá-las para aprimorar a interface do seu aplicativo e torná-lo mais atraente para seus usuários.
Tipos de animações do Android
Para implementar animações no Android, você pode usar a API Android Animation.
A API de animação fornece diferentes tipos de animações que você pode usar para criar diferentes tipos de animações do Android.
Você também pode usar bibliotecas externas como Lottie , que fornece animações pré-construídas que você pode integrar facilmente em seu aplicativo.
Aqui estão alguns dos tipos de animação Android mais usados:
Animações | Visão geral |
Animações de propriedade | Essas animações permitem animar as propriedades de um objeto, como alfa (transparência), escala, rotação e translação (movimento). As animações de propriedade são versáteis e podem ser aplicadas a qualquer View ou ViewGroup em seu aplicativo. |
Ver animações | As animações de exibição são mais simples de usar e normalmente são aplicadas a exibições individuais. Eles incluem animações como animações alfa (fading in ou out), animações de escala (redimensionamento), animações de rotação (girar) e animações de tradução (mover). |
Transições | As transições são usadas para animar as mudanças entre os diferentes estados dos elementos da interface do usuário. Eles geralmente são usados para transições de tela, como esmaecimento, deslizamento ou dimensionamento entre fragmentos ou atividades. A estrutura de transição no Android fornece várias animações de transição integradas. |
Drawables vetoriais | Drawables vetoriais animados são usados para animar gráficos vetoriais, que são gráficos escaláveis e independentes de resolução. Você pode definir drawables vetoriais em arquivos XML e animá-los usando a classe AnimatedVectorDrawable, permitindo animações suaves e escaláveis. |
Animações quadro a quadro | As animações quadro a quadro envolvem a exibição de uma sequência de imagens em rápida sucessão para criar a ilusão de movimento. Essas animações são comumente usadas para animações simples ou para exibir animações curtas como GIFs. |
Animações baseadas em física | Animações baseadas em física simulam princípios físicos do mundo real, como gravidade, fricção e colisões, para criar animações realistas. Essas animações são ideais para criar experiências de usuário interativas e envolventes em jogos ou simulações. |
Animações onduladas | As animações onduladas são usadas para fornecer feedback visual quando um usuário interage com um elemento de interface do usuário clicável, como um botão ou um item de lista. Essas animações criam um efeito cascata que emana do ponto de contato, fornecendo dicas visuais ao usuário. |
Transições Animadas | As transições animadas envolvem animar a tela inteira ou parte da tela durante uma transição, como entre atividades ou fragmentos. Essas animações podem incluir transições complexas, como transições de elementos compartilhados, em que uma View ou ViewGroup é animada entre duas telas para criar uma transição suave e visualmente atraente. |
Animações de propriedade
As animações de propriedade são usadas para animar as propriedades de um objeto, como sua posição, rotação e escala. Essas animações permitem movimentos mais fluidos e naturais.
Aqui está um exemplo de como criar uma animação de propriedade que gira uma imagem:
// Find the image ImageView image = findViewById(R.id.image); // Create the animation ObjectAnimator animation = ObjectAnimator.ofFloat(image, "rotation", 0f, 360f); animation.setDuration(1000); animation.setRepeatCount(ObjectAnimator.INFINITE); // Start the animation animation.start();
Visualização de animação do Android
View Animation permite animar a aparência de um objeto View.
Aqui está um exemplo de como criar uma View Animation que esmaece um TextView dentro e fora:
// Find the text view TextView text = findViewById(R.id.text); // Create the animation Animation animation = AnimationUtils.loadAnimation(context, R.anim.fade); // Apply the animation text.startAnimation(animation);
Aqui está o arquivo XML de animação de fade que define a animação:
<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromAlpha="0.0" android:toAlpha="1.0" />
Animações desenháveis do Android
As animações desenháveis são semelhantes às animações de quadro, mas em vez de exibir uma série de imagens, elas animam as propriedades de um desenhável.
Aqui está um exemplo de como criar uma animação drawable que anima uma sequência de drawables:
// Load the ImageView ImageView imageView = findViewById(R.id.imageView); // Load the animation drawable AnimationDrawable animation = new AnimationDrawable(); animation.addFrame(getResources().getDrawable(R.drawable.drawable1), 1000); animation.addFrame(getResources().getDrawable(R.drawable.drawable2), 1000); animation.addFrame(getResources().getDrawable(R.drawable.drawable3), 1000); // Set the duration and repeat count animation.setOneShot(false); // Set the animation drawable to the ImageView imageView.setImageDrawable(animation); // Start the animation animation.start();
Animações quadro a quadro
As animações de quadro são usadas para criar animações simples exibindo uma série de imagens em rápida sucessão.
Aqui está um exemplo de como criar uma animação de quadro que exibe uma série de imagens:
// Find the image view ImageView image = findViewById(R.id.image); // Load the animation AnimationDrawable animation = (AnimationDrawable) image.getDrawable(); // Start the animation animation.start();
Aqui está um exemplo de como definir a animação em XML:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false"> <item android:drawable="@drawable/image1" android:duration="100" /> <item android:drawable="@drawable/image2" android:duration="100" /> <item android:drawable="@drawable/image3" android:duration="100" /> </animation-list>
Animação entre Android
Tween Animation é usado para realizar uma transformação em uma View ou um objeto no Android.
Ele move ou altera a aparência de um objeto de uma posição para outra, como mover um botão de um local para outro na tela.
Aqui está um exemplo de como criar uma animação Tween que move um botão da esquerda para a direita:
// Load the animation Animation animation = AnimationUtils.loadAnimation(context, R.anim.move_right); // Find the button and apply the animation Button button = findViewById(R.id.button); button.startAnimation(animation);
Aqui está o arquivo XML de animação move_right que define a animação:
<translate xmlns:android="http://schemas.android.com/apk/res/android" android:duration="1000" android:fromXDelta="-100%p" android:toXDelta="0%p" />
Funções de animação do Android
A classe Animation no Android oferece inúmeras funções que permitem aos desenvolvedores gerenciar e controlar vários aspectos das animações.
Abaixo estão algumas funções frequentemente usadas da classe Animation:
Funções | Visão geral |
setDuration(int duração) | Define a duração da animação em milissegundos. |
setInterpolator(Interpolador interpolador) | Define o interpolador para a animação. Um interpolador define a taxa de mudança de uma animação ao longo do tempo. |
setRepeatCount(int repeatCount) | Define o número de vezes que a animação deve ser repetida. O valor padrão é 0, o que significa que a animação será executada apenas uma vez. |
setStartOffset(int startOffset) | Define o atraso antes do início da animação, em milissegundos. |
setFillAfter(boolean fillAfter) | Especifica se a animação deve aplicar sua transformação após o término. |
setRepeatMode(int repeatMode) | Define o comportamento da animação quando ela se repete. As opções são RESTART, que reinicia a animação desde o início, e REVERSE, que inverte a animação a cada repetição. |
setAnimationListener(ouvinte do AnimationListener) | Define um ouvinte para ser notificado quando a animação começa, termina ou se repete. |
começar() | Inicia a animação. |
cancelar() | Cancela a animação. |
reiniciar() | Redefine a animação para seu estado inicial. |
getDuration() | Retorna a duração da animação. |
getInterpolator() | Retorna o interpolador para a animação. |
getRepeatCount() | Retorna o número de vezes que a animação será repetida. |
getStartOffset() | Retorna o atraso antes do início da animação. |
getRepeatMode() | Retorna o modo de repetição da animação. |
começou() | Retorna true se a animação foi iniciada. |
terminou() | Retorna true se a animação terminou. |
Conclusão
As animações são uma ferramenta poderosa que pode melhorar muito a experiência do usuário do seu Androidaplicativo. Ao adicionar apelo visual, fornecer feedback do usuário, aumentar o envolvimento, orientar os usuários e estabelecer a marca do seu aplicativo, as animações podem criar uma interface de usuário mais dinâmica e interativa. Com a variedade de tipos de animação disponíveis no Android, como animações de propriedade, animações de visualização, transições e desenháveis vetoriais animados, você tem a flexibilidade de criar animações envolventes e visualmente atraentes que elevam a qualidade do seu aplicativo. Seguindo as práticas recomendadas, otimizando o desempenho e considerando a acessibilidade, você pode criar animações que encantam seus usuários e destacam seu aplicativo. Então, vá em frente e adicione vida ao seu aplicativo com animações Android e crie uma experiência de usuário mais envolvente e agradável. Animação feliz!