私はJavaでいくつかのカスタムコントロールをプログラミングし、トランジション/フェード/ムーブメントにアニメーションを使用しています。
私がこれを行っている方法は、新しいスレッドを開始し、変数を調整し、paint()
メソッドを使用して調整することです。
例:
さて、私の質問は、たとえば、フェードインを実装していたとしましょう。私が行うことは、アルファ変数をインクリメントして、たとえば(擬似コードで)byte x //between 0-255
長方形をペイントすることです。alphaLevel += x
byte increment = 40;
for (byte i = 0; i < 255; i += increment)
{
_parentClass.setAlphaLevel (i);
_parentClass.repaint();
Thread.sleep (10);
}
_parentClass.setAlphaLevel (255);
私が知りたいのは、アニメーションが途切れ途切れに見えないように、スリープを設定する必要がある最低値と最高値です。ターゲットデバイスのリフレッシュレートと関係がありますか、それとも人間の目と関係がありますか?ステップでもう一度同じ質問。コピーできる良い数字を教えてくれるウェブサイトはありますか?
私が尋ねる理由は、バッテリー駆動のデバイスで実行されるため、CPU時間が長くなる=バッテリーが少なくなるため、効率を最大化するためです。何に設定しますか?
ありがとう。