为了账号安全,请及时绑定邮箱和手机立即绑定

如何添加Activity的切换动画呢

标签:
Android

先上效果图(GIF显示效果比较卡,不过实际是很流畅的)

先上效果图(GIF显示效果比较卡,不过实际是很流畅的)
效果.gif
找到了两种实现办法

  1. overridePendingTransition方法
    在startActivity后加上这样一行代码

startActivity(new Intent(MainActivity.this , SelectWiFiActivity.class));
overridePendingTransition(R.anim.up_in, R.anim.up_out);
然后在跳转到的activity里重写finish方法

@Overridepublic void finish() {    super.finish();
    overridePendingTransition(R.anim.down_in, R.anim.down_out);
}

overridePendingTransition的两个参数分别是新的activity进入的动画和当前activity退出的动画

2.自定义主题style
在style.xml文件夹内加入

<style name="AnimActivity" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
    <item name="android:windowNoTitle">true</item></style><style name="AnimationActivity" parent="@android:style/Animation.Activity" >
    <item name="android:activityOpenEnterAnimation">@anim/up_in</item>
    <item name="android:activityOpenExitAnimation">@anim/up_out</item>
    <item name="android:activityCloseEnterAnimation">@anim/down_in</item>
    <item name="android:activityCloseExitAnimation">@anim/down_out</item></style>

A 启动 B 时,A 从屏幕上消失,这时执行的是A的android:activityOpenExitAnimation
A 启动 B 时,B 出现在屏幕上,这时执行的是B的android:activityOpenEnterAnimation
从 B 返回A时,B从屏幕上消失,这时执行的是B的android:activityCloseExitAnimation
从 B 返回A时,A 出现在屏幕上,这时执行的是A的android:activityCloseEnterAnimation
我的动画文件,供参考
up_in.xml

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

<translate
    android:fromYDelta="100%p"
    android:toYDelta="0"
    android:duration="800"
    />

</set>
up_out.xml

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

<translate
    android:fromYDelta="0"
    android:toYDelta="-100%p"
    android:duration="800"
    />

</set>
down_in.xml

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

<translate
    android:fromYDelta="-100%p"
    android:toYDelta="0"
    android:duration="800"
    />

</set>
down_out.xml

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

<translate
    android:fromYDelta="0"
    android:toYDelta="100%p"
    android:duration="800"
    />

</set>
至此,一声感叹,animation set居然还有如此之操作?hh

更多动画效果可以参考
Android Developer API文档 (需 科 学 上 网)

使用style主题既可以应用在AndroidManifest.xml下 application的android:theme里作为全局主题动画效果,也可以单独应用在activity内单独应用于某些activity

<application

    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/MyAppTheme">

原文链接:http://www.apkbus.com/blog-851511-77160.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消