質問

私は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時間=バッテリーが少ないことです。何に設定しますか?

ありがとう。

役に立ちましたか?

解決

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

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

他のヒント

私は個人的に調査を提案します トライデントアニメーションライブラリ, 、たとえあなたがモバイルのコンテキストでそれを使用していても(あなたがそうであるように思われるように)、ライブラリは約100kしかないように見えます。

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

そして、ニッピックなポイントで... byte Javaのデータタイプは署名されていないため、実際には-128〜127です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top