最新消息:文章中包含代码时,请遵守代码高亮规范!

Android Activity切换上下抽屉效果

Android Robin 11978浏览 0评论

Activity之间的切换效果动画有很多种,常见的有位移与渐变,缩放用的比较少,旋转就更不用说了。针对位移来说,是一个Activity出的同时另一个Actvity进,位移还有另一种方式就是抽屉效果,抽屉效果也是位移的一种,但不是一个Activity进另一个Activity出,而是一个Activity覆盖另一个Activty,如下图所示:

device-2014-08-02-200159device-2014-08-02-201013

 

这种效果定义起来就相对麻烦点,下面看下如何来定义:


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

    <translate
        android:duration="250"
        android:fromYDelta="100.0%p"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:toYDelta="0.0" />

</set>

 

这是一个从下往上的位移动画从相对父窗体Y轴的100%移动到0,用于Activity的进入

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

    <translate
        android:duration="250"
        android:fromYDelta="0.0%p"
        android:interpolator="@android:anim/decelerate_interpolator"
        android:toYDelta="100.0%p" />

</set>

这是一个从上往下的位移动画,从相对父窗体的0%移动到100%,用于Activity的退出。

准备了这两个位移动画xml文件后,下面要定义样式:

</pre>
<style name="Theme.Present" parent="@android:style/Theme.Translucent.NoTitleBar">
<item name="android:windowAnimationStyle">@style/PresentAnimation</item>
</style>

<style name="PresentAnimation">
<item name="android:windowEnterAnimation">@anim/slide_up</item>
<item name="android:windowExitAnimation">@anim/slide_down</item>
</style>

定义了这两个动画样式后,下面要在AndroidManifest中声明Activity的时候使用这个样式:

<activity
            android:name=".ui.SearchActivity"
            android:launchMode="singleTop"
            android:theme="@style/Theme.Present"
            android:windowSoftInputMode="adjustPan" />

这样就完成整个位移效果了,当切换Activity的时候就可以看到抽屉效果。

转载时请注明出处及相应链接,本文永久地址:https://blog.yayuanzi.com/1448.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者wangbin的打赏,我们会更加努力!    如果您想成为作者,请点我

发表我的评论
取消评论

表情