android页面之间切换的转场动画的两种方法
首先新建一个anim的资源包,分别创建slide_in_from_right 、slide_out_to_left slide_out_to_right、slide_in_from_left 这里是实现的左右切换 使用到的动画主要是位移动画
好了 我们先来看一下slide_in_from_right根据文件名可以知道是页面从左到右进入的动画,从100到0 我们又知道根据手机的坐标特性 如图:从不可视图到可视图从左到右-100 --->0 --->100 -->100++ 0到100是可视层 -100和100++是不可视层
slide_in_from_right:
<set xmlns:android="http://schemas.android.com/apk/res/android">
android:duration="200"
android:fromXDelta="100%p"
android:toXDelta="0"/>
</set>
下面xml文件同理得:
slide_out_to_left :
<set xmlns:android="http://schemas.android.com/apk/res/android">
android:duration="200"
android:fromXDelta="-100%p"
android:toXDelta="0"/>
</set>
slide_out_to_right:
<set xmlns:android="http://schemas.android.com/apk/res/android">
android:duration="200"
android:fromXDelta="0"
android:toXDelta="100%p"/>
</set>
slide_in_from_left:
android:duration="200"
android:fromXDelta="100%p"
android:toXDelta="0"/>
</set>
第一步完成
第二步在style文件下新建style名称为AnimFade 但他的父style必须是@android:style/Animation.Activity
<style name="AnimFade" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/slide_in_from_right
<item name="android:activityOpenExitAnimation">@anim/slide_out_to_left
<item name="android:activityCloseExitAnimation">@anim/slide_out_to_right
<item name="android:activityCloseEnterAnimation">@anim/slide_in_from_left
</style>
如果你只需要调用一次主题可以把上面的style作为你主题的item使用
<style name="horizontal_slide" parent="android:Theme.NoTitleBar">
<item name="android:windowAnimationStyle">@style/AnimFade
</style>
第三步在清单文件对应用添加一下主题就可以了
android:theme="@android:style/Theme.NoTitleBar"
这种方法是不是很简单
法二:
这种就比较简单但也比较繁琐因为你每次切换的时候都要调用一下切换的方法就是在你的基类中做页面跳转的封装方法 使用的知识点就是
overridePendingTransition(android.R.anim.slide_in_left,android.R.anim.slide_out_right);
必须注意的是他是在finish完成后调用由于这种方法过于老旧和繁琐 如果是页面切换页面是不很多的情况下可以使用这种方法,如果页面比较多而且是全局的用第一种方法比较简洁,配置一次就可以了