Activity跳转动画、淡入淡出、滑入滑出、自定义退出进入

前言:

系统中有两个定义好的Activity跳转动画:fade_in、fade_out、slide_in_left、slide_out_right

其中运用到了插值器的知识点,这里也会简单的介绍插值器的几个功能

跳转动画用到的是Activity中的overridePendingTransition这个方法进行跳转

知识点介绍:

overridePendingTransition(int enterAnim,int exitAnim)参数1:进入时的动画、参数2:退出时的动画

注:这个方法必须放在startActivity和finish之后才能调用

常见的插值器:

LinearInterpolator:线性插值器,匀速运动;

AccelerateDecelerateInterpolator:加速减速插值器,动画两头慢中间快;

DecelerateInterpolator:减速插值器,动画越来越慢;

fade_in与fade_out:

public void in(View v) {
startActivity(new Intent(this, SecondActivity.class));
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
} public void out(View v) {
finish();
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}

  

slide_in_left与slide_out_right:

public void in(View v) {
startActivity(new Intent(this, SecondActivity.class));
overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
} public void out(View v) {
finish();
overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
}

  

聪明的你可能会想到,如果我们两个合起来,可以不?答案是可以的

public void in(View v) {
startActivity(new Intent(this, SecondActivity.class));
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
} public void out(View v) {
finish();
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
}

  

会思考的你可能会想到,可不可以我们自己来做一个我们的自己的动画呢?答案是可以的

在res文件下创建一个anim的文件夹,专门存放我们的动画xml文件

anim_in.xml与anim_out.xml:(zAdjustment="top"意思是强制将我们的执行动画Activity放在最上层)

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator">
<scale android:fromXScale="2.0" android:toXScale="1.0"
android:fromYScale="2.0" android:toYScale="1.0"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
</set>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator"
android:zAdjustment="top">
<scale android:fromXScale="1.0" android:toXScale=".5"
android:fromYScale="1.0" android:toYScale=".5"
android:pivotX="50%p" android:pivotY="50%p"
android:duration="@android:integer/config_mediumAnimTime" />
<alpha android:fromAlpha="1.0" android:toAlpha="0"
android:duration="@android:integer/config_mediumAnimTime"/>
</set>
public void in(View v) {
startActivity(new Intent(this, SecondActivity.class));
overridePendingTransition(R.anim.anim_in,R.anim.anim_out);
} public void out(View v) {
finish();
overridePendingTransition(R.anim.anim_in,R.anim.anim_out);
}

  

最新文章

  1. OEL上使用yum install oracle-validated 简化主机配置工作
  2. 解决ThinkPHP Call to a member function assign() on a non-object
  3. [No00001E]不出国,学口语-出国口语自然好?才怪咧!
  4. UIWebView使用时的问题,包含修改user agent
  5. Berkeley DB的常见API简单分析
  6. [转]论window和Linux之长短
  7. OC加强-day03
  8. android注解使用详解(图文)
  9. WindowsAPI一日一练
  10. Windows下python安装MySQLdb
  11. js小知识-数组去重
  12. 安装可以查看PMM 源码的Go环境
  13. P1342 请柬
  14. Jenkins结合.net平台工具之Nuget
  15. Linux Kernel Programming - Time,Delays,and Deferred Work
  16. Java基础(basis)-----抽象类和接口详解
  17. C# 后台模块 Word 模板操作
  18. GCC参数详解 二
  19. js 代码执行时间
  20. 第08章—整合Spring Data JPA

热门文章

  1. stm32定时器频率采样的方式
  2. eclipse---之Console窗口命令行输入
  3. NOIP2019翻车前写(and 抄)过的代码
  4. 【题解】hdu1506 Largest Rectangle in a Histogram
  5. linux脚本中有source相关命令时的注意事项
  6. TCGA简易下载工具 SangerBox
  7. Java基础之十三 字符串
  8. 利用docker实现私有镜像仓库
  9. 笔记:Map(就是用来Ctrl+C,V的)
  10. excel绘制多列 其中一列作为横坐标 ; 数值拟合