专栏首页肖蕾的博客为安卓APP设置统一风格的界面切换动画那么

为安卓APP设置统一风格的界面切换动画那么

其实这也是我自己遇到的问题,为了避免下次遇到再满世界去找,我还是记录下来,网上的都是不全的。我也是满心无奈、 我们首先要意识到,界面切换有几种?

  • 当界面被打开直至充满整个屏幕的时候的动画。
  • 界面已经充满屏幕,但是被刚才新打开的界面遮住的动画。
  • 当界面关闭的时候的动画
  • 当刚才被遮住的界面重新回到屏幕的动画。

那么

在anim文件夹下新建这么几个文件

on_activity_open.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500">
    <!--当界面被打开的动画 从屏幕右边往屏幕移动 直至覆盖整个屏幕-->
    <translate android:fromXDelta="100%p" android:toXDelta="0%p"/>
</set>    

on_activity_puse.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500">
    <!--当界面被遮住的动画 从界面往左边移动,直至消失在屏幕的左边-->
    <translate android:fromXDelta="0%p" android:toXDelta="-100%p"/>
</set>

on_activity_close.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500">
    <!--当界面被关闭的动画 从屏幕往屏幕右边移动,直至消失在界面右边-->
    <translate android:fromXDelta="0%p" android:toXDelta="100%p"/>
</set>    

on_activity_reopen.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:duration="500">
    <!--当被遮住的界面重新回到平面的动画 从屏幕的左边往屏幕移动(右边),直至重新遮住整个屏幕-->
    <translate android:fromXDelta="-100%p" android:toXDelta="0%p"/>
</set>    

那么在style中应该这么写(其中一部分是抄网友的,自己结合了一下)

<!--当我们从 A1 启动 A2 时,A1 从屏幕上消失,这个动画叫做 android:activityOpenExitAnimation-->
<!--当我们从 A1 启动 A2 时,A2 出现在屏幕上,这个动画叫做 android:activityOpenEnterAnimation-->
<!--当我们从 A2 退出回到 A1 时,A2 从屏幕上消失,这个叫做 android:activityCloseExitAnimation-->
<!--当我们从 A2 退出回到 A1 时,A1 出现在屏幕上,这个叫做 android:activityCloseEnterAnimation-->
<style name="Animation" parent="@android:style/Animation">
    <item name="android:activityOpenEnterAnimation">@anim/on_activity_open</item>
    <item name="android:activityOpenExitAnimation">@anim/on_activity_puse</item>
    <item name="android:activityCloseEnterAnimation">@anim/on_activity_reopen</item>
    <item name="android:activityCloseExitAnimation">@anim/on_activity_close</item>
    <item name="android:taskOpenEnterAnimation">@anim/on_activity_open</item>
    <item name="android:taskOpenExitAnimation">@anim/on_activity_puse</item>
    <item name="android:taskCloseEnterAnimation">@anim/on_activity_reopen</item>
    <item name="android:taskCloseExitAnimation">@anim/on_activity_close</item>
    <item name="android:taskToFrontEnterAnimation">@null</item>
    <item name="android:taskToFrontExitAnimation">@null</item>
    <item name="android:taskToBackEnterAnimation">@null</item>
    <item name="android:taskToBackExitAnimation">@null</item>
</style>

续:最近发现按照自己写的教程,怎么都设置不上去,后来发现,还需要这样:

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:windowAnimationStyle">@style/Animation</item>
    </style>

然后在你的Minafest的application里面设置:android:theme="@style/AppTheme" 这样就完全统一了切换动画了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android 自定义Seekbar样式

    Xiaolei123
  • 解决安卓中XML文件声明高度 宽度无效的问题

    Xiaolei123
  • 打造一个无数据显示无数据提示信息的ListView

    Xiaolei123
  • android 开发中使用okhttp上传文件到服务器

    首先,在 app/build.gradle 的 dependencies 增加 implementation ‘com.squareup.okhttp3:okh...

    砸漏
  • android使用Textview实现伸缩效果

    方案一、Textview添加android:ellipsize属性,让展示不完的部分使用省略号代替。 方案二、Textview采用走马灯效果,使其滚动展示全部...

    砸漏
  • ExpandableListView实现商品列表折叠

    简介 在日常的开发中,有可能会遇到需要一些可以展开的列表,比如QQ的好友列表,电商的购物车折叠显示。Android也给我们提供ExpandableListVie...

    xiangzhihong
  • Android使用popUpWindow带遮罩层的弹出框

    上次项目中实现了新功能,就一直想添加到博客里来着,惰性发作起来简直太可怕,不说了,跟着一起写吧,三步即可实现简单的弹出框功能,首先看效果——

    砸漏
  • Android实现简单的popupwindow提示框

    Popupwindow大家肯定都特别熟悉了 像一般的提示框的话我们会用Dialog来做 但是随着设计要求的不断提高,App中各式各样的提示框都有,很明显普通的D...

    砸漏
  • Xposed去抖音提示

    特别感谢https://www.52pojie.cn/thread-684757-1-1.html 官方教程:https://github.com/rovo8...

    ppjun
  • Android实现今日头条订阅频道效果

    砸漏

扫码关注云+社区

领取腾讯云代金券