为安卓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 条评论
登录 后参与评论

相关文章

来自专栏walterlv - 吕毅的博客

理解 C# 项目 csproj 文件格式的本质和编译流程

发布于 2018-05-10 00:13 更新于 2018-08...

431
来自专栏用户2442861的专栏

chrome使用技巧(看了定不让你失望,不错)

之前有看过刘哇勇写的Chrome 控制台不完全指南,让我觉得瞬间对chrome的了解实在太浅了。对此特意了解了一番(也就是在他的博文上进行了一些总结和了解一些其...

501
来自专栏Jerry的SAP技术分享

Jerry和您聊聊Chrome开发者工具

Chrome开发者工具是Jerry日常工作使用的三大调试器之一。虽然工具名称前面带了个"开发者", 但是它对非开发人员仍然有用。不信?

3563
来自专栏超然的博客

mpvue-小程序之蹲坑记

mpvue 是兼容微信小程序的生命周期与 vue 的生命周期,vue 实例会接管小程序 Page 实例的生命钩子,因此需要使用到小程序的生命周期钩子时,可将相应...

1342
来自专栏企鹅号快讯

雅虎前端优化的35条军规

问题:我怎么才能收到你们公众号平台的推送文章呢? 内容部分 1.尽量减少HTTP请求数 80%的终端用户响应时间都花在了前端上,其中大部分时间都在下载页面上的各...

2675

用CasperJS构建你的网络爬虫

为应用程序收集数据有时候是一件困难和费力的事。一个急需的API可能会丢失,或者可能有太多的数据需要处理。有时候,只是有时候,你需要通过网络抓取信息。

1193
来自专栏叁金大数据

自学Python八 爬虫大坑之网页乱码

  Bug有时候破坏的你的兴致,阻挠了保持到现在的渴望。可是,自己又非常明白,它是一种激励,是注定要被你踩在脚下的垫脚石!

611
来自专栏xingoo, 一个梦想做发明家的程序员

前端开发总览

记录前端学习历程 kissy UI JavaScript   1 funtion方法的高级特性   2 图解闭包   3 JS面向对象高级特性   4 ...

1786
来自专栏大前端开发

从编程小白到全栈开发:寻找代码中的问题

很少有人能一下子就写出完全没有问题的代码。工作良好的程序,都是经过一遍遍的反复测试运行、发现问题、剔除问题(也就是我们所说的找Bug和修Bug)过后的产物,经过...

823
来自专栏云飞学编程

喜欢用Python做爬虫吗?进度条了解下?自制一个进度条模块!

我们在做Python爬虫脚本的时候,往往希望在运行的过程中可以实时查看到我的下载进度!之前我也一直想实现这个功能(绝对不是为了炫(装)耀(*)),也查看了很多博...

651

扫码关注云+社区