com:office:office" />
Anime suas telas em tempo real com a JGoodies Animation
Conheça a API de animação do JGoodies que permite criar animações de alta qualidade com baixo custo de processamento.
O desenvolvimento de animações em Java ganhou uma importante contribuição com o lançamento da API JGoodies Animation. Com esse projeto, é possível construir animações em tempo real e de alta qualidade em suas aplicações desktop, exigindo pouca capacidade de processamento.
Neste artigo, são apresentadas as principais características da API Animation que, além de fornecer recursos para o desenvolvimento de animações desde o início, possui um conjunto pronto de animações que podem ser aplicadas de forma rápida e simples no seu projeto. Algumas utilizações típicas da API são na construção animações para telas de abertura (splash), ou para destacar atividades que precisem capturar a atenção do usuário ou indicar que alguma ação mais demorada está ocorrendo.
Animações em tempo real
Antes de entrar nos detalhes sobre a API, vamos apresentar alguns conceitos fundamentais, e um pouco sobre como se chegou às técnicas atuais de animação.
Antes da existência de APIs dedicadas, os desenvolvedores implementavam animações utilizando loops no código (comandos for e while, por exemplo) para trocar imagens e mover desenhos na tela. Essa técnica, no entanto, revelou
O tempo como base
Por isso, passou
As funções definidas para uma animação são processadas dependendo do número de quadros por segundo (FPS – Frames Per Second) definido pelo programador. É importante lembrar que para nossos olhos devemos ter pelo menos 24 FPS para que a animação pareça suave e sem falhas. Se essa velocidade não for alcançada (devido a, por exemplo, à incapacidade do computador de desenhar todos os quadros necessários no tempo desejado), começamos a perceber a animação como um conjunto de imagens sendo trocadas.
JGoodies Animation no contexto
Isso, porém, é um problema que dificilmente acontece com as animações feitas com a JGoodies Animation, principalmente devido ao baixo custo de processamento exigido pela API. Na prática, as animações são suaves mesmo em máquinas mais lentas e com pouca memória.
Vale lembrar ainda que a API Animation é baseada nos conceitos descritos pela especificação SMIL (Synchronized Multimedia Integration Language) do W3C, porém utilizando Java para descrever as animações ao invés de XML. Para mais detalhes sobre essa especificação, visite w3.org/AudioVideo.
Exemplo com a API Animation
Apresentaremos agora como utilizar a API Animation
O exemplo usa várias bibliotecas do JGoodies. Para obtê
Tipos de Animação
Vamos ilustrar as diferentes formas de animação que estão disponíveis na API. A tela da aplicação (Figura 1) é bem simples e contém apenas uma área onde a animação ocorre e um botão para iniciá
Figura 1. Tela do exemplo em diferentes momentos.
Dadas as restrições da página impressa, é difícil conseguir passar a exata noção das animações na revista. Recomendo então que o leitor faça o download do código e execute a aplicação durante a leitura para ter a idéia precisa do que está sendo criado.
O exemplo é basicamente uma seqüência de frases que são apresentadas gradativamente na tela. Ao fundo, temos uma animação que lembra raios rodando no sentido horário, a qual o JGoodies chama de “animação do ventilador” (fan animation, em inglês). Os textos são apresentados na seguinte ordem:
Bem
Essa é a API Animation
na Java Magazine
Tornando a GUI das suas aplicações
Mais elegante e atraente
Animação letra a letra é legal!
As animações que estão relacionadas a cada uma dessas frases estão descritas na Tabela 1. Após a apresentação dos textos, temos um efeito de desfoque que faz uma imagem surgir do fundo branco até atingir o foco total alguns segundos depois (Figura 7).
Frase |
Animação |
Descrição |
Bem |
Esmaecimento (Fade) |
O texto surge do fundo branco, permanece um tempo e desaparece da mesma forma que surgiu (Figura 2). |
Essa é a API Animation |
Escala (Scale) |
O texto surge do fundo branco, permanece um tempo e desaparece crescendo na direção do usuário (Figura 3). |
na Java Magazine |
Espaçamento (Space) |
... |