Android Activity与Activity切换动画

概述

在开发过程中我们会发现默认的切换效果根据不同的手机显示的效果有时候会不一样的,这是Android版本的问题导致的,而且默认的切换效果有时并不是我们想要的,这个时候就需要我们来自己自定义切换效果了。这里我们就会用到动画,当然动画的类别也比较多这里我们将用到位移动画–translate。Android在2.0以后增加了一个方法:

overridePendingTransition (int enterAnim, int exitAnim)


enterAnim:第一个Activity退出时的动画
exitAnim:第二个Activity进入的动画

接下来我举几个例子
效果1:
Android Activity与Activity切换动画_第1张图片
逻辑图
Android Activity与Activity切换动画_第2张图片

Android Activity与Activity切换动画_第3张图片
实现代码,首先在res下创建anim文件夹,创建base_slide_remain.xml(保持底层Activity位置不变,否则就会出现黑色背景),base_slide_right_in.xml(从右边往左进来),base_slide_right_out.xml(从左边往右边离开)

base_slide_remain.xml <set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="3000"        android:fromXDelta="0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="0" /></set>
base_slide_right_in.xml<set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="3000"        android:fromXDelta="100.0%"        android:interpolator="@android:anim/decelerate_interpolator"        android:toXDelta="0.0%" /></set>
base_slide_right_out.xml<set xmlns:android="http://schemas.android.com/apk/res/android" >    <translate        android:duration="3000"        android:fromXDelta="0.0%"        android:interpolator="@android:anim/accelerate_interpolator"        android:toXDelta="100.0%" /></set>

效果2:
Android Activity与Activity切换动画_第4张图片
说明:出现的黑色区域是模拟器的问题,如果真机也会这样的话说明你的是屏幕虚拟按键navigationBarColor,在style里修改其颜色即可。

<\item name=”android:navigationBarColor”>#00000000<\/item>

逻辑图:
快下班了就不再自己画图了,在网上盗了一张图,见谅见谅
Android Activity与Activity切换动画_第5张图片
实现代码,base_slide_remain.xml(前面讲到),base_slide_top_in.xml(从下往上进入),base_slide_top_out.xml(从上退出)

base_slide_top_in.xml<set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:duration="3000"        android:fromYDelta="100%"        android:toYDelta="0%">translate>set>
base_slide_top_out.xml<set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:duration="3000"        android:fromYDelta="0%"        android:toYDelta="-100%">translate>set>

更多相关文章

  1. Android面试系列文章2018之Android部分之动画机制篇
  2. Android Tv 背景动态改变,带过渡效果
  3. Android中的Button自定义点击效果之改变点击时按钮的颜色
  4. Android中关于Volley的使用(一)加载图片
  5. Android 图片特效如何实现及总结
  6. Android 开发者的 Flutter(三) —— Flutter 中的动画与绘制

随机推荐

  1. Mysql中正则表达式Regexp常见用法
  2. MySQL查询指定字段不是数字与逗号的sql
  3. MYSQL开启远程访问权限的方法
  4. MySQL延迟问题和数据刷盘策略流程分析
  5. Workbench连接不上阿里云服务器Ubuntu的M
  6. MySQL 的覆盖索引与回表的使用方法
  7. 详解Mysql查询条件中字符串尾部有空格也
  8. MySQL 学习总结 之 初步了解 InnoDB 存储
  9. 解决MySql客户端秒退问题(找不到my.ini)
  10. MySQL延时复制库方法详解