转载:http://ming-fanglin.iteye.com/blog/1396473

原来使用Activity.overridePendingTransition来自定义Activity的进入动画,却发现没法定义退出的动画。结果就发现了强大的Theme和Style,之后还需要好好研究一下。

具体是这样子的:

在AndroidManifest里面,对于application和activity标签可以定义theme属性。如果对Application定义了某一个属性,那么会对所有的activity产生影响,当然你可以在activity中覆盖它。

<application android:theme="@style/ThemeActivity">

然后在values/themes.xml中

Java代码  
  1. <style name="ThemeActivity" mce_bogus="1">
  2. <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
  3. <item name="android:windowNoTitle">true</item>
  4. </style>
<style name="ThemeActivity" mce_bogus="1">        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>        <item name="android:windowNoTitle">true</item>      </style>   

在values/styles.xml中

Java代码  
  1. <style name="AnimationActivity" parent="@android:style/Animation.Activity" mce_bogus="1">
  2. <item name="android:activityOpenEnterAnimation">@anim/push_left_in</item>
  3. <item name="android:activityOpenExitAnimation">@anim/push_left_out</item>
  4. <item name="android:activityCloseEnterAnimation">@anim/push_right_in</item>
  5. <item name="android:activityCloseExitAnimation">@anim/push_right_out</item>
  6. </style>
<style name="AnimationActivity" parent="@android:style/Animation.Activity" mce_bogus="1">    <item name="android:activityOpenEnterAnimation">@anim/push_left_in</item>          <item name="android:activityOpenExitAnimation">@anim/push_left_out</item>          <item name="android:activityCloseEnterAnimation">@anim/push_right_in</item>   <item name="android:activityCloseExitAnimation">@anim/push_right_out</item>      </style>   

这样就可以了,至于anim中的动画,就自己定义啦,这个和普通的animation是一样的,如果不知道的话,请参见

http://developer.android.com/guide/topics/graphics/view-animation.html。

这种方式除了可以定义activity的animation之外,还有task,window出现和结束时候的动画,具体请参见

http://developer.android.com/reference/android/R.styleable.html#WindowAnimation

本人不明白的 mce_bogus="1" 是什么意思,去掉了也没有影响

附普通切换效果动画:

Activity的切换动画指的是从一个activity跳转到另外一个activity时的动画。
它包括两个部分:
一部分是第一个activity退出时的动画;
另外一部分时第二个activity进入时的动画;

在Android的2.0版本之后,有了一个函数来帮我们实现这个动画。这个函数就是
overridePendingTransition
这个函数有两个参数,第一个参数是第二个activity进入时的动画,第二个参数是第一个activity退出时的动画。

这里需要特别说明的是,关于overridePendingTransition这个函数,有两点需要主意:
1.它必需紧挨着startActivity()或者finish()函数之后调用
2.它只在android2.0以及以上版本上适用

下面举个例子

overridePendingTransition(R.anim.push_left_in,R.anim.push_left_out);

R.anim.push_left_in,第二一个activity进入时动画

push_left_in这个xml文件,放在res/anim目录下

代码如下:

Java代码  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <set xmlns:android="http://schemas.android.com/apk/res/android">
  3. <translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/>
  4. <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
  5. </set>
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="100%p" android:toXDelta="0" android:duration="300"/><alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="300" />
</set>

R.anim.push_left_out,第一个activity出去时动画

代码如下:

Java代码  
  1. <set xmlns:android="http://schemas.android.com/apk/res/android">
  2. <translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/>
  3. <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
  4. </set>
<set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:fromXDelta="0" android:toXDelta="-100%p" android:duration="300"/><alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="300" />
</set>

转载于:https://www.cnblogs.com/shuzui1985/archive/2013/03/31/3020896.html

android动画效果 --- 设置activity 跳转动画相关推荐

  1. Android 9.0去除Activity跳转动画

    有客户要求界面跳转风格要统一,第三方的APP无法控制,所以需要从系统层把Activity跳转动画禁用 frameworks/base/services/core/java/com/android/se ...

  2. android 5.0跳转动画,android Lollipop(5.0)--activity跳转动画

    android Lollipop(5.0)对app中有共享view的activity直接的跳转提供了更好的动画交互. 实现步骤: 1,编写需要的transform. 2,给activity设置样式st ...

  3. android跳转界面动画,Android Activity跳转动画效果

    Activity的跳转动画在5.0的时候做了一个重大的突破,下面来看一下吧 1.5.0之前的overridePendingTransition 相信大家对OverridePendingTransiti ...

  4. Android Activity跳转动画 - overridePendingTransition用法及原理分析

    overridePendingTransition()是在Activity类中实现的一个用来实现跳转动画的方式,也是最常使用的方法. overridePendingTransition() 先看这个名 ...

  5. Android -- 基础篇 -- Activity跳转动画的五种方式(下)

    上一篇文章中我们讲解了在Activity启动过程中获取组件宽高的五种方式.在Activity的启动过程中如果我们直接在生命周期方法中通过view.getWidth()或者是view.getHeight ...

  6. android activity的跳转动画,实现activity跳转动画的若干种方式

    第一种: (使用overridePendingTransition方法实现Activity跳转动画) 在Activity中代码如下 /** * 点击按钮实现跳转逻辑 */ button1.setOnC ...

  7. Android Material Design 之 Activity 跳转水波纹扩散动画

    博主声明: 转载请在开头附加本文链接及作者信息,并标记为转载.本文由博主 威威喵 原创,请多支持与指教. 本文首发于此   博主:威威喵  |  博客主页:https://blog.csdn.net/ ...

  8. Android 动画之View动画效果和Activity切换动画效果

    View动画效果: 1.>>Tween动画 通过对View的内容进行一系列的图形变换(平移.缩放.旋转.透明度变换)实现动画效果,补间动画需要使用<set>节点作为根节点,子节 ...

  9. Android Activity跳转动画,让你的APP瞬间绚丽起来

    我们都知道绚丽的APP总会给用户耳目一新的感觉,为了抓住用户更大网络公司使出浑身解数让自己的产品更绚丽,而绚丽最简单的效果就是Activity跳转效果,不仅可以让用户看起来舒服,而且实现起来也特别简单 ...

最新文章

  1. 朴素、Select、Poll和Epoll网络编程模型实现和分析——朴素模型
  2. GAN还有这种操作!谷歌大脑和X实验室利用模拟条件和域适应提高机器抓取效率(附论文)
  3. 支撑计算机高速化的半导体技术
  4. Unity中Oculus分屏相机和普通相机一键切换
  5. RHCE-samba服务
  6. JQuery中button提交表单报TypeError: elem[type] is not a function jquery
  7. 03. Java NIO Channel 通道
  8. 1759: 多少个元素比它大 二分
  9. Web浏览器已经限制此文件显示
  10. 心电信号的特征提取、分析与处理
  11. 计算机编码--3.GB2312与GBK
  12. win10远程连接Ubuntu
  13. 2020美化一款PHP版三合一收款码_附50多款模板源码
  14. 服务器2008修改虚拟内存,Windows 2008 关闭系统虚拟内存功能 如何删除pagefile.sys
  15. Visual Paradigm 里什么是复合结构图?
  16. 补充记录vue3中rrweb-player组件实现网页录屏的一个BUG解决
  17. Linux下服务器开发的必要准备
  18. vue base64导出(pdfexcel ) 打印(pdf)
  19. 批处理命令之Start的详细用法-P处理打开IE窗口最大化
  20. python 如何提取 word 内的图片

热门文章

  1. python实现pdf解密和pdf转图片
  2. leetcode - 39. 组合总和
  3. 鱼眼图像畸变校正--透视变换
  4. 《汇编语言》王爽—第五章实验三详解
  5. 百练 06 股票买卖
  6. php rijndael,将PHP Rijndael算法重写为Java(Android)
  7. linux 服务器鼠标右键失灵_【华鹏客服维修部】系统重置后,键盘失灵怎么办?...
  8. mysql数据库空密码修改_修改mysql 数据库密码
  9. 易买网HTML静态页面,易买网(前台+后台的静态页面)
  10. excel删除无尽空白行_【辅导员说】学好办公软件word、excel、ppt的意义