Activity之间的动画切换
2014-10-13 14:33
232 查看
Activity在启动另外一个Activity时之间是可以加入效果的:使用代码:
Intent intent = new Intent(MainActivity.this , Activity02.class); startActivity(intent); <strong><span style="font-size:18px;">overridePendingTransition(R.anim.default_rotate_in, R.anim.default_rotate_out);</span></strong>
default_rotate_in的动画是<span style="font-family: Arial, Helvetica, sans-serif;">Activity02进来的动画,</span><span style="font-family: Arial, Helvetica, sans-serif;">default_rotate_out是mainActivity的动画,这是对基本的使用。</span>
<span style="font-family: Arial, Helvetica, sans-serif;">使用这种方法是可以实现一个到另一个Activity</span><span style="font-family: Arial, Helvetica, sans-serif;">之间的跳转,如果每一个跳转都要加入这行代码有些繁琐</span><span style="font-family: Arial, Helvetica, sans-serif;">!</span>现在使用一个应用程序都使用同一个Activity之间跳转的效果(也可以使用
<strong><span style="font-size:18px;">overridePendingTransition 来指定某个Activity跳转效果</span></strong><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">)</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">使用方法如下:</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> 1.<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" <strong>android:theme="@style/AppTheme</strong>" ></span>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);">其中AppTheme中加入一个属性</span></span>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);"> <!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <strong> <item name="@android:windowAnimationStyle">@style/activityThemme</item></strong> </style> </span></span>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);">其中:</span></span>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);"> <style name="activityThemme" > </span></span><ol style="padding: 0px; margin: 10px 20px; line-height: 22.5px; color: rgb(51, 51, 51); font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px;"><li style="padding: 0px; margin: 0px;"><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 8px; margin-bottom: 8px; letter-spacing: 0.5px; font-size: 12.5px;"><span style="padding: 0px; margin: 0px; color: black;"><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong><</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span> <span style="padding: 0px; margin: 0px; color: red;">name</span>=<span style="padding: 0px; margin: 0px; color: blue;">"android:activityOpenEnterAnimation"</span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span>@anim/activity_open_in_anim<span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong></</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span> </span></p></li><li style="padding: 0px; margin: 0px;"><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 8px; margin-bottom: 8px; letter-spacing: 0.5px; font-size: 12.5px;"><span style="padding: 0px; margin: 0px; color: black;"> <span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong><</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span> <span style="padding: 0px; margin: 0px; color: red;">name</span>=<span style="padding: 0px; margin: 0px; color: blue;">"android:activityOpenExitAnimation"</span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span>@anim/activity_open_out_anim<span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong></</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span> </span></p></li><li style="padding: 0px; margin: 0px;"><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 8px; margin-bottom: 8px; letter-spacing: 0.5px; font-size: 12.5px;"><span style="padding: 0px; margin: 0px; color: black;"> <span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong><</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span> <span style="padding: 0px; margin: 0px; color: red;">name</span>=<span style="padding: 0px; margin: 0px; color: blue;">"android:activityCloseEnterAnimation"</span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span>@anim/activity_close_in_anim<span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong></</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span> </span></p></li><li style="padding: 0px; margin: 0px;"><p style="padding-top: 0px; padding-bottom: 0px; margin-top: 8px; margin-bottom: 8px; letter-spacing: 0.5px; font-size: 12.5px;"><span style="padding: 0px; margin: 0px; color: black;"> <span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong><</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span> <span style="padding: 0px; margin: 0px; color: red;">name</span>=<span style="padding: 0px; margin: 0px; color: blue;">"android:activityCloseExitAnimation"</span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span>@anim/activity_close_out_anim<span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong></</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span> </span></p></li></ol> </style>
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);">只要加入这些属性就可以实现所有的Activity的跳转效果一样(除非</span></span><pre name="code" class="java"><strong><span style="font-size: 18px;">overridePendingTransition 来指定某个Activity跳转效果</span></strong><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">)</span>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="java"><span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);"></span></span>现在假设有两个Activity, A 和 B。 在A中可以启动B. 同时,A,B的theme属性均设置为上面定义的属性。那么,以上动画的发生时机如下:(1)当A启动B时,A退出,B进入,A退出时的动画名称为android:activityOpenExitAnimation,动画文件为R.anim.activity_open_out_anim. B进入时的动画名称为android:activityOpenEnterAnimation, 动画文件为R.anim.activity_open_in_anim.(2)当B结束时,B退出,A进入。B退出的动画名称为android:activityCloseExitAnimation, 动画文件为R.anim.activity_close_out_anim. A进入时的动画名称为android:activityCloseEnterAnimation, 动画文件为R.anim.activity_close_in_anim. 可以理解为前面一组<item name="android:activityOpenEnterAnimation">@anim/activity_open_in_anim</item> <item name="android:activityOpenExitAnimation">@anim/activity_open_out_anim</item>
<pre name="code" class="java"><pre name="code" class="java"><span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);"></span></span>
是打开一个新ACTIVITY时使用的
后面一组
<ol style="white-space: pre; padding: 0px; margin: 10px 20px; line-height: 22.5px; color: rgb(51, 51, 51); font-family: 微软雅黑, Verdana, sans-serif, 宋体; font-size: 13px;"><li style="padding: 0px; margin: 0px;"><p style="margin-top: 8px; margin-bottom: 8px; padding-top: 0px; padding-bottom: 0px; letter-spacing: 0.5px; font-size: 12.5px;"><span style="padding: 0px; margin: 0px; color: black;"> <span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong><</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span> <span style="padding: 0px; margin: 0px; color: red;">name</span>=<span style="padding: 0px; margin: 0px; color: blue;">"android:activityCloseEnterAnimation"</span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span>@anim/activity_close_in_anim<span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong></</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span> </span></p></li><li style="padding: 0px; margin: 0px;"><p style="margin-top: 8px; margin-bottom: 8px; padding-top: 0px; padding-bottom: 0px; letter-spacing: 0.5px; font-size: 12.5px;"><span style="padding: 0px; margin: 0px; color: black;"> <span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong><</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span> <span style="padding: 0px; margin: 0px; color: red;">name</span>=<span style="padding: 0px; margin: 0px; color: blue;">"android:activityCloseExitAnimation"</span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span>@anim/activity_close_out_anim<span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong></</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>item</strong></span><span style="padding: 0px; margin: 0px; color: rgb(0, 102, 153); "><strong>></strong></span> </span></p></li></ol>是按Back键 finish()一个ACTIVITY时使用的现在看一个完整的例子:
描述: MainActivity ---------------> Activity02----------------->Activity03 --------------- 》Activity02 --------------------->Mativity03
右进左出 右进左出 按Back 右出左进 右出左进
代码:<pre name="code" class="java"><application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.testchangeactivity.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.example.testchangeactivity.Activity03" > </activity> <activity android:name="com.example.testchangeactivity.Activity02" ></activity> </application>
<!-- Application theme. --> <style name="AppTheme" parent="AppBaseTheme"> <item name="@android:windowAnimationStyle">@style/activityThemme</item> </style> <style name="activityThemme" > <!-- All customizations that are NOT specific to a particular API-level can go here. --> <item name="@android:activityOpenEnterAnimation">@anim/default_fromright_in</item> <item name="@android:activityOpenExitAnimation">@anim/default_toleft_out</item> <item name="@android:activityCloseEnterAnimation">@anim/default_fromleft_in</item> <item name="@android:activityCloseExitAnimation">@anim/default_toright_out</item> </style>XMl文件 default_fromleft_in.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false" > <translate android:duration="10000" android:fillAfter="true" android:fromXDelta="-100%p" android:fromYDelta="0" android:toXDelta="0" android:toYDelta="0" /></set>default_fromright_in.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false" > <translate android:duration="10000" android:fillAfter="true" android:fromXDelta="100%p" android:fromYDelta="0" android:toXDelta="0" android:toYDelta="0" /> </set>default_toleft_out.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false" > <translate android:duration="10000" android:fillAfter="true" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="-100%p" android:toYDelta="0" /></set>default_toright_out.xml
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator="false" > <translate android:duration="10000" android:fillAfter="true" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="100%p" android:toYDelta="0" /></set>只使用了一种动画 translate 各种效果就得看个人的想象力也可以使用 scale rotate alpha translate的组合,那么效果就更好了
相关文章推荐
- Activity之间动画切换带来的问题
- Android中的动画具体解释系列【4】——Activity之间切换动画
- activity之间切换的动画效果
- android动画-Activity之间切换动画
- Activity之间的动画切换学习笔记(一)
- View动画另一些使用场景--LayoutAnimation和Activity之间的切换效果
- android的 activity之间切换去除动画之原始activity不调用finish
- 如何在两个activity之间切换动画?
- Activity之间切换的动画
- Android中的动画详解系列【4】——Activity之间切换动画
- Android中的动画具体解释系列【4】——Activity之间切换动画
- activity 之间切换添加动画效果(一)
- Android中的动画详解系列【4】——Activity之间切换动画
- Android—Activity之间的切换动画——overridePendingTransition(0, 0);
- (转)Activity之间的切换动画
- Activity之间切换的动画
- activity 之间切换添加动画效果(二)
- Android中的动画详解系列【4】——Activity之间切换动画
- 两个Activity之间的切换动画
- Activity 之间的切换动画《一》