さまざまなシナリオで実行されているアニメーションが混在しています。例として;
小さな円のビットマップにフェードインとフェードアウトのアニメーターがあります。should start と onで、ACTION_DOWN
フェードインが終了すると、フェードアウトが実行されます。ただし、ユーザーがフェードインが終了する前に指を離すと、指はそこで停止し ( )、フェードアウトはそのアルファ値から開始する必要があります。毎回新しいオブジェクトアニメーターは必要ありません。コンストラクターでこのようなアニメーターを定義しましたfade-in
ACTION_UP
fadein.cancel()
fadein = Objectanimator.ofFloat(bitmap, "alpha", 1.0f);
fadeOut = Objectanimator.ofFloat(bitmap, "alpha", 0.0f);
何が起こるかというと、前述のように (指をすばやく持ち上げる) 問題を発生させると、フェードアウト アニメーターはフェードインが中断された場所のアルファ値を取得し、それを保持します。つまり、2 回目以降は新しいアルファを取得しません! 何故ですか?回避策は何ですか?毎回新しいオブジェクトを作成しますか?