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

相关文章

来自专栏阿凯的Excel

巧用格式刷解决合并单元格无法统计问题

最近小编一直在分享Python,有朋友和我聊! 我是谁!我来自哪里!我要去往何处! 好吧,为了能对得起我的名字《阿凯的Excel》 本小编决定每周不少于一...

3626
来自专栏重庆的技术分享区

如何用css和js禁止网页选择文字(兼容) 保护版权呢?(附代码)

2482
来自专栏web编程技术分享

【手把手】制作一个简单的HTML网页

4249
来自专栏郭霖

Android最佳性能实践(四)——布局优化技巧

在前面几篇文章当中,我们学习了如何通过合理管理内存,以及高性能编码技巧的方式来提升应用程序的性能。然而实际上界面布局也会对应用程序的性能产生比较大的影响,如果布...

2328
来自专栏前端架构与工程

【翻译】浏览器渲染Rendering那些事:repaint、reflow/relayout、restyle

原文链接:http://www.phpied.com/rendering-repaint-reflowrelayout-restyle/ 有没有被标题中的5个“...

2166
来自专栏前端说吧

JS-鼠标经过显示二级菜单

38110
来自专栏DannyHoo的专栏

iOS开发中使用系统中没有的字体-swift

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

913
来自专栏james大数据架构

FrameLayout(框架布局)

框架布局是最简单的布局形式。所有添加到这个布局中的视图都以层叠的方式显示。第一个添加的控件被放在最底层,最后一个添加到框架布局中的视图显示在最顶层,上一层的控件...

19310
来自专栏极乐技术社区

微信小程序那点事:特性总结

一、微信小程序运行环境 1、完全封闭的环境不等于浏览器环境 2、WXML/WXSS/JS格式 3、WXML 不等于 HTML 4、WX...

1996
来自专栏Nian糕的私人厨房

WeChat 文章列表页面(二)

本次的系列博文的知识点讲解和代码,主要是来自于 七月老师 的书籍《微信小程序开发:入门与实践》,由个人总结并编写,关于更多微信小程序开发中的各项技能,以及常见问...

1174

扫码关注云+社区