web-dev-qa-db-ja.com

セレクター/状態遷移のアニメーション化

リストビューのシンプルなセレクターがあります

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <item Android:drawable="@drawable/yellow_arc" Android:state_activated="true"/>
    <item Android:drawable="@drawable/yellow_nonarc" Android:state_activated="false"/>

</selector>

ビューの状態がアクティブから非アクティブに、またはその逆に変更されたときに、これらのドローアブル間の遷移をアニメーション化したいと思います。

APIデモで example を実行すると、ビューのアクティブ化された状態が変更されている間、明らかなフェードイン/フェードアウトアニメーションが表示されます。

したがって、ビューの状態が変更されている間のカスタムアニメーションが必要です。 xmlで行う必要があると思いますが、方法が見つかりませんでした。

前もって感謝します。

編集:

私は何か便利なものを見つけたと思いますactivated_background.xml\Android\android-sdk\platforms\Android-API_VERSION\data\res\drawable含む

<selector xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:exitFadeDuration="@Android:integer/config_mediumAnimTime">
    <item Android:state_activated="true" Android:drawable="@Android:drawable/list_selector_background_selected" />
    <item Android:drawable="@color/transparent" />
</selector>

したがって、APIデモの例では、exitFadeDurationを宣言してこのフェードアウトアニメーションを実現しています。ただし、これは私が望むものではありません..カスタムアニメーションを宣言したいフェードイン/フェードアウトアニメーションが私のドローアブルではうまく見えないため、状態ドローアブル間の遷移。

37
C.d.

API 21「StateListAnimator」に追加されました

http://developer.Android.com/reference/Android/animation/StateListAnimator.html

私はこれが古い質問であることを知っていますが、これはこれを行うことを探している将来の人々を助けるかもしれません。

6
Larry McKenzie

TransitionDrawable がこれを達成するのに役立つと思います。

ここで答えを確認できます: Androidでビューの背景色のアニメーションを変更

3
HatemTmi

あなたが望むフェードですか?

TextSwitcherの動作と同じだと思いますが、代わりにViewSwitcherに変更したいかもしれません。フェードはプログラムで行われます。


Animation in = AnimationUtils.loadAnimation(this,
                Android.R.anim.fade_in);
        Animation out = AnimationUtils.loadAnimation(this,
                Android.R.anim.fade_out);

        mSwitcher1.setInAnimation(in);
        mSwitcher1.setOutAnimation(out); 

0
FabianCook