m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

android画面遷移でアニメーション

ぶっちゃけ

わかっていない
とりあえず動いたメモを記載

画面

f:id:m_shige1979:20150101190108p:plain
f:id:m_shige1979:20150101190115p:plain

アニメーション用の設定ファイルを作成

※参考資料のものをそのまま流用させていただきましたm(_ _)m

作成方法はリソースファイルの作成で「Android resource file」を指定

f:id:m_shige1979:20150101190333p:plain

res/animator/slide_in_right
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="300"
        android:fromXDelta="100%"
        android:toXDelta="0" />
    <alpha
        android:duration="300"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>
res/animator/slide_out_left
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:toXDelta="-100%" />
    <alpha
        android:duration="300"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>
res/animator/slide_in_left
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="300"
        android:fromXDelta="-100%"
        android:toXDelta="0" />
    <alpha
        android:duration="300"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />
</set>
res/animator/slide_out_right
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:toXDelta="100%" />
    <alpha
        android:duration="300"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />
</set>

res/values/styleの編集

アニメーションの定義を編集

<resources>

    <!-- Base application theme. -->
<!--    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> -->
        <!-- Customize your theme here. -->
    <!--    </style> -->

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="android:windowAnimationStyle">@style/Animation.Activity</item>
    </style>

    <!-- アニメーションの詳細設定 -->
    <style name="Animation" parent="android:Animation" />
    <style name="Animation.Activity" parent="android:Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@animator/slide_in_right</item>
        <item name="android:activityOpenExitAnimation">@animator/slide_out_left</item>
        <item name="android:activityCloseEnterAnimation">@animator/slide_in_left</item>
        <item name="android:activityCloseExitAnimation">@animator/slide_out_right</item>
    </style>

</resources>
結果

f:id:m_shige1979:20150101191837g:plain

所感

アニメーションのパラメータの動きがいまいちわかっていないので使用するのはわかってからにしておこう(´・ω・`)
なんかシンプルにslideとかpopupとかなら良かったんですけどね…
まあ、カスタマイズ自在自由ということで納得します