Question

Je programme des contrôles personnalisés en Java et en utilisant l'animation pour les transitions / fades / mouvements.

La façon dont je fais est que je commence un nouveau thread et faire des ajustements aux variables et les choses sont ajustées en utilisant la méthode paint().

Exemple:

Maintenant, ma question est, disons, par exemple, que j'exécutait un fondu dans ce que je ferais est incrément la variable alpha par byte x //between 0-255 et peindre un rectangle où alphaLevel += x, par exemple (en pseudo-code).

byte increment = 40;

for (byte i = 0; i < 255; i += increment)
{
    _parentClass.setAlphaLevel (i);
    _parentClass.repaint();
    Thread.sleep (10);    
}

_parentClass.setAlphaLevel (255);

Ce que je veux savoir est ce qui est le plus bas et ce qui est le plus élevé que je devrais régler le sommeil afin que l'animation ne semble pas saccadé? At-il quelque chose todo avec le taux de rafraîchissement de l'appareil cible ou quoi que ce soit todo avec les yeux de l'homme? Même question à nouveau à l'étape. Y at-il un site Web qui va me donner de bons chiffres que je peux copier.

La raison pour laquelle je demande, est de maximiser l'efficacité car il va être exécuté sur un piles appareil si plus de temps CPU = moins la batterie. Que voulez-vous mettre à?

Merci.

Était-ce utile?

La solution

La technique que vous cherchez est appelé "double tampon".

Je ne regret pas le temps de vous montrer un exemple, mais qui est ce que vous devez examiner.

Autres conseils

Je suggérerais personnellement enquêter sur le bibliothèque animation Trident , même si vous utilisez dans un contexte mobile (comme il semble de la question que vous êtes) la bibliothèque semble être seulement 100k.

Je ne sais pas à quel point il est adapté à votre situation, mais il vaut la peine d'essayer.

Et sur un point de pinailler ... le type de données byte en Java n'est pas non signé, de sorte que sa gamme est en fait -128 à 127.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top