Atendendo a pedidos, segue o código do componente para animação de botões para LWUIT - Ginga-J.
package org.gvlabs.sbtvd.ui; import com.sun.dtv.lwuit.Button; import com.sun.dtv.lwuit.Graphics; import com.sun.dtv.lwuit.Image; /** * Animated Button * * @author Thiago Galbiatti Vespa * @version 1.0 */ public class AnimatedButton extends Button { private int speed = 50; private Image[] animaImgs; private int currentImage = 0; private long lastInvoke; private boolean forward = true; private boolean backAndForth = true; private boolean loop = true; private boolean disableLoop = false; /** * Default constructor */ public AnimatedButton() { } /** * Get array of images * @return array of images */ public Image[] getAnimaImgs() { return animaImgs; } /** * Set array of images to be animated * @param animaImgs array of images */ public void setAnimaImgs(Image[] animaImgs) { this.animaImgs = animaImgs; if (animaImgs != null && animaImgs.length > 0) { this.setIcon(animaImgs[0]); } } /** * Get animation speed is ms * @return animation speed */ public int getSpeed() { return speed; } /** * Set animation speed in ms * @param speed animation speed */ public void setSpeed(int speed) { this.speed = speed; } /** * Back and Forth animation * @return true if is a back and forth animation */ public boolean isBackAndForth() { return backAndForth; } /** * Set back and forth animation value * @param backAndForth */ public void setBackAndForth(boolean backAndForth) { this.backAndForth = backAndForth; } /** * Is loop? * @return true if is a loop animation */ public boolean isLoop() { return loop; } /** * true = loop, false = one animation * @param loop */ public void setLoop(boolean loop) { this.loop = loop; } public boolean animate() { if (disableLoop) return false; long current = System.currentTimeMillis(); if (current - lastInvoke > speed) { lastInvoke = current; if (forward) { currentImage++; } else { currentImage--; } if (currentImage >= animaImgs.length) { if (!loop) { disableLoop = true; return false; } else if (!backAndForth) { forward = true; currentImage = 0; } else { forward = false; currentImage = animaImgs.length - 1; } } else if (currentImage < 0) { forward = true; currentImage = 0; } return true; } return false; } /* (non-Javadoc) * @see com.sun.dtv.lwuit.Button#paint(com.sun.dtv.lwuit.Graphics) */ public void paint(Graphics g) { g.drawImage(animaImgs[currentImage], getX(), getY()); } }
Para utilizar é só atribuir o conjunto de imagens para o método setAnimaImgs e registrar a animação no formulário, por exemplo: form.registerAnimation(animatedButton);
Botão Animado em LWUIT – Ginga: Atendendo a pedidos, segue o código do componente para anim... http://t.co/Hab5ZsZKmG (via @thiagovespa)
Show de bola Thiago, mamão com açucar para utilizar! agora consigo aplicar imagens animadas para dar o efeito do gif animado!!!
Olá Thiago, parabéns pelo trabalho!
Estou desenvolvendo, para um TCC, uma aplicação cujo foco é a mineração de dados para tv digital, no entanto, queria fazer uma GUI bem simples usando o xletview, com um formulário. Acho que o xletview não suporta lwuit, vc sabe que bibliotecas poderiam ser usadas para criar botões, textbox e outros componentes de formulários?
Desde já muito grato!
O Xletview não tem quase nada a ver com a implementação do modelo de tv brasileira. Você utilizar ele não vai ser perda de tempo?