アンドロイドのあれこれ
[PR]
×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
translate、alpha、scaleの画面遷移アニメーション
普段あまりアニメーションをうまく使っていないので練習+メモとして簡単な画面遷移アニメーションを紹介します。
画面遷移、ActivityのOpen、Closeまたはアニメーションタイプなどは以下のサイトで参考しました。
http://developer.android.com/intl/ja/guide/topics/resources/animation-resource.html
http://www.adamrocker.com/blog/289/activity_open_close_animation.html
http://android.roof-balcony.com/resource/animation/
画面遷移、ActivityのOpen、Closeまたはアニメーションタイプなどは以下のサイトで参考しました。
http://developer.android.com/intl/ja/guide/topics/resources/animation-resource.html
http://www.adamrocker.com/blog/289/activity_open_close_animation.html
http://android.roof-balcony.com/resource/animation/
translateアニメーションの定義
alphaアニメーションの定義
scaleアニメーションの定義
スタイルの定義
テーマの定義
作成したテーマをActivityに設定する
<!-- res/anim/activity_trans_open_enter.xml --> <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="100%" android:toYDelta="0%" android:fillAfter="true" android:fillEnabled="true" android:duration="@string/activity_animation_duration" android:interpolator="@android:anim/accelerate_interpolator" /> <!-- res/anim/activity_trans_open_exit.xml --> <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="0%" android:toYDelta="-100%" android:fillAfter="true" android:fillEnabled="true" android:duration="@string/activity_animation_duration" android:interpolator="@android:anim/accelerate_interpolator" /> <!-- res/anim/activity_trans_close_enter.xml --> <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="-100%" android:toYDelta="0%" android:fillAfter="true" android:fillEnabled="true" android:duration="@string/activity_animation_duration" android:interpolator="@android:anim/accelerate_interpolator" /> <!-- res/anim/activity_trans_close_exit.xml --> <?xml version="1.0" encoding="utf-8"?> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromYDelta="0%" android:toYDelta="100%" android:fillAfter="true" android:fillEnabled="true" android:duration="@string/activity_animation_duration" android:interpolator="@android:anim/accelerate_interpolator" />
alphaアニメーションの定義
<!-- res/anim/activity_alpha_enter.xml --> <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@string/activity_animation_duration" android:interpolator="@android:anim/accelerate_interpolator" /> <!-- res/anim/activity_alpha_exit.xml --> <?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@string/activity_animation_duration" android:interpolator="@android:anim/accelerate_interpolator" />
scaleアニメーションの定義
<!-- res/anim/activity_scale_enter.xml --> <?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:fromXScale="1.0" android:toXScale="0.0" android:fromYScale="1.0" android:toYScale="0.0" android:pivotX="50%" android:pivotY="50%" android:duration="@string/activity_animation_duration" android:interpolator="@android:anim/accelerate_interpolator" /> <!-- res/anim/activity_scale_exit.xml --> <?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:fromXScale="0.0" android:toXScale="1.0" android:fromYScale="0.0" android:toYScale="1.0" android:pivotX="50%" android:pivotY="50%" android:duration="@string/activity_animation_duration" android:interpolator="@android:anim/accelerate_decelerate_interpolator" />
スタイルの定義
<!-- res/values/styles.xml --> <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Animation" parent="android:Animation" /> <style name="Animation.Activity.Trans" parent="android:Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/activity_trans_open_enter</item> <item name="android:activityOpenExitAnimation">@anim/activity_trans_open_exit</item> <item name="android:activityCloseEnterAnimation">@anim/activity_trans_close_enter</item> <item name="android:activityCloseExitAnimation">@anim/activity_trans_close_exit</item> </style> <style name="Animation.Activity.Alpha" parent="android:Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/activity_alpha_enter</item> <item name="android:activityOpenExitAnimation">@anim/activity_alpha_exit</item> <item name="android:activityCloseEnterAnimation">@anim/activity_alpha_enter</item> <item name="android:activityCloseExitAnimation">@anim/activity_alpha_exit</item> </style> <style name="Animation.Activity.Scale" parent="android:Animation.Activity"> <item name="android:activityOpenEnterAnimation">@anim/activity_scale_enter</item> <item name="android:activityOpenExitAnimation">@anim/activity_scale_exit</item> <item name="android:activityCloseEnterAnimation">@anim/activity_scale_enter</item> <item name="android:activityCloseExitAnimation">@anim/activity_scale_exit</item> </style> </resources>
テーマの定義
<!-- res/values/themes.xml --> <?xml version="1.0" encoding="utf-8"?> <resources> <style name="MyTheme1" parent="android:Theme"> <item name="android:windowAnimationStyle">@style/Animation.Activity.Trans</item> </style> <style name="MyTheme2" parent="android:Theme"> <item name="android:windowAnimationStyle">@style/Animation.Activity.Alpha</item> </style> <style name="MyTheme3" parent="android:Theme"> <item name="android:windowAnimationStyle">@style/Animation.Activity.Scale</item> </style> </resources>
作成したテーマをActivityに設定する
<!-- AndroidManifest.xml --> .... <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.Light.NoTitleBar" > <activity android:label="@string/app_name" android:name=".MainActivity" android:theme="@style/MyTheme1" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity" android:theme="@style/MyTheme1" > </activity> </application> ....
COMMENT