ボタンのクロスフェード アニメーションを作成するために TransitionDrawable を使用しています。ボタンを 1 回押すと、サービスがオンになり、遷移が発生します。もう一度押すと、ボタンはサービスをオフにし、逆の遷移が発生します。この移行の xml コードは次のとおりです。
<?xml version="1.0" encoding="UTF-8"?>
<transition xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/main_off" />
<item android:drawable="@drawable/main_on" />
</transition>
問題は、アクティビティが一時停止され、再開されると、TransitionDrawable が Drawable main_off (つまり、インデックス/レイヤー 0 のもの) に戻ることです。サービスが onResume() で実行されているかどうかを確認できるので、フラグ変数の準備が整いました。私が管理できないのは、TransitionDrawable をその xml ファイルの Drawables の 1 つに設定する方法です。つまり、サービスが実行されている場合、onResume() で TransitionDrawable を main_on に設定するにはどうすればよいですか? setDrawableByLayerId() メソッドを使用してみましたが、機能していないようです。ただし、正しく使用していないだけかどうかはわかりません。どんな助けでも大歓迎です。ありがとう。