1

「間隔」(ミリ秒を表す整数値) という変数で指定された間隔で背景とテキストの色を反転するように TextView を取得しようとしています。

現在、各プロパティに ObjectAnimator を使用してから、AnimatorSet オブジェクトを使用してそれらを一緒に再生しています。これは機能します。ただし、すべての移行色を取り除く方法がわかりません。スムーズな移行は必要ありません。ハードな点滅だけです。これを達成するために setFrameDelay(interval) を使用しようとしましたが、うまくいきません。

別のスレッド/実行可能ファイルで実行しようとしましたが、別のアクションを実行する前にスレッドを停止する必要があるという問題に遭遇し続けました。スレッドが停止するまで新しいアクションを確実に待機させることができなかったため、タイミングが適切でないと、奇妙な背景とテキストのオーバーレイが表示されてしまいました。Android のアニメーション フレームワークを使用すると、簡単に開始および停止できるようになりました。

ここに私が取り組んでいるコードがあります:

ObjectAnimator backgroundColorValueAnimator = ObjectAnimator.ofInt(
            textView,
            "backgroundColor",
            Color.BLACK,
            Color.parseColor(globalSettings.color)
    );
    ObjectAnimator textColorValueAnimator = ObjectAnimator.ofInt(
            textView,
            "textColor",
            Color.parseColor(globalSettings.color),
            Color.BLACK
    );
    backgroundColorValueAnimator.setFrameDelay(interval);
    textColorValueAnimator.setFrameDelay(interval);
    backgroundColorValueAnimator.setRepeatCount(ObjectAnimator.INFINITE);
    backgroundColorValueAnimator.setRepeatMode(ObjectAnimator.RESTART);
    textColorValueAnimator.setRepeatCount(ObjectAnimator.INFINITE);
    textColorValueAnimator.setRepeatMode(ObjectAnimator.RESTART);
    globalSettings.invertBackground = new AnimatorSet();
    globalSettings.invertBackground.play(backgroundColorValueAnimator).with(textColorValueAnimator);
    globalSettings.invertBackground.setDuration(interval);
    globalSettings.invertBackground.start();

どんな助けでも大歓迎です。

4

1 に答える 1