1

私は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時間が長くなる=バッテリーが少なくなるため、効率を最大化するためです。何に設定しますか?

ありがとう。

4

2 に答える 2

0

個人的には、トライデント アニメーション ライブラリを調査することをお勧めします。モバイル コンテキストで使用している場合でも (質問からわかるように)、ライブラリは約 100k しかないようです。

あなたの状況にどれだけ適しているかはわかりませんが、試してみる価値はあります。

細かい点で... byteJava のデータ型は符号なしではないため、その範囲は実際には -128 から 127 です。

于 2010-06-08T17:47:34.747 に答える
0

あなたが探しているテクニックは、「ダブル バッファリング」と呼ばれます。

残念ながら、例を示す時間がありませんが、それはあなたが調べる必要があるものです.

于 2010-06-08T16:26:53.137 に答える