Android Activity进出动画三种方法

发布时间 - 2026-01-11 00:55:30    点击率:

 Android Activity进出动画三种方法

 实现activity的进出场动画总共有3种方式,下面会一一列出,首先给出示例的动画xml文件。

动画的xml文件

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
  android:fromYDelta="100%" 
  android:toYDelta="0" 
  android:duration="1000" 
  /> 

这是R.anim.in

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
  android:fromYDelta="0" 
  android:toYDelta="100%" 
  android:duration="1000" 
  /> 

这是R.anim.out

实现activity进出场动画的第1种方式:overridePendingTransition

用法:

toNext(AnimationDrawableActivity.class); 
overridePendingTransition(R.anim.in, R.anim.out); 

PS:toNext是一个封装的方法,跳转到指定的activity。

如果要finish掉当前activity,把它放在overridePendingTransition()方法前后似乎并无差别,不过有人建议finish()放在overridePendingTransition()之前,不知出处。

实现activity进出场动画的第2种方式:在清单文件中为activity设置theme

在styles.xml文件中写一个style,如下:

<style name="animationofactivity" parent="AppBaseTheme"> 
    <item name="android:windowAnimationStyle">@style/enterandentrance</item> 
</style> 

其中,主要是为android:windowAnimationStyle设置值,enterandentrance也是一个style,如下:

<style name="enterandentrance"> 
    <item name="android:activityOpenEnterAnimation">@anim/in</item> 
    <item name="android:activityOpenExitAnimation">@anim/out</item> 
    <item name="android:activityCloseEnterAnimation">@anim/in</item> 
    <item name="android:activityCloseExitAnimation">@anim/out</item> 
</style> 

从名为A的activity跳转到B,B也可以跳转到C,其中转场动画设置在B上。

android:activityOpenEnterAnimation:指的是,进入B时的动画。
android:activityOpenExitAnimation:指的是进入B时,A的动画,与B的动画是一起显示的。
android:activityCloseEnterAnimation:通过B跳转到C后,后退到B时,B的进入动画
android:activityCloseExitAnimation:通过B跳转到C后,后退到B时,C的退出动画

最终,为activity设置一个theme,如下:

<activity android:name="com.example.androidresources.AnimationDrawableActivity"  
     android:theme="@style/animationofactivity"/> 

实现activity进出场动画的第3种方式:在activity中用代码设置

在所要设置动画的activity的onCreate方法中,设置了setContentView()之后,写如下代码:

这种方法除了用在activity的转场动画之外,还能用在dialog中。

LayoutParams params = getWindow().getAttributes(); 
params.windowAnimations = R.style.enterandentrance; 
getWindow().setAttributes(params); 

一些动画小常识:

1、调用overridePendingTransition(enterAnim, exitAnim)时,enterAnim和exitAnim如果有为0的值,指的是不设置该动画。

2、如果进入一个activity时,想让前一个activity静止不动,那么需要专门写一个动画,如下:

<?xml version="1.0" encoding="utf-8"?> 
<translate xmlns:android="http://schemas.android.com/apk/res/android" 
  android:fromYDelta="0" 
  android:toXDelta="0" 
  android:duration="1000"/> 

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # Activity进出动画  # 进出动画几种方法  # Android的Activity跳转动画各种效果整理  # Android实现Activity界面切换添加动画特效的方法  # Android Activity跳转动画效果  # Android Activity切换动画详解及实例  # Android中Activity过渡动画的实例讲解  # 跳转到  # 这是  # 指的是  # 放在  # 用在  # 退到  # 是一个  # 还能  # 把它  # 希望能  # 不动  # 三种  # 想让  # 谢谢大家  # 所要  # 中为  # 总共有  # 主要是  # 小常识  # 这种方法 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么连接多个数据库_Laravel多数据库连接配置  如何挑选优质建站一级代理提升网站排名?  微信推文制作网站有哪些,怎么做微信推文,急?  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  如何快速搭建支持数据库操作的智能建站平台?  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  教你用AI润色文章,让你的文字表达更专业  Laravel如何处理文件下载请求?(Response示例)  Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧  如何用好域名打造高点击率的自主建站?  Python文件操作最佳实践_稳定性说明【指导】  如何在Windows虚拟主机上快速搭建网站?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  大学网站设计制作软件有哪些,如何将网站制作成自己app?  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  Laravel怎么发送邮件_Laravel Mail类SMTP配置教程  如何批量查询域名的建站时间记录?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  如何在橙子建站上传落地页?操作指南详解  如何在IIS管理器中快速创建并配置网站?  b2c电商网站制作流程,b2c水平综合的电商平台?  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Laravel如何实现一对一模型关联?(Eloquent示例)  Laravel集合Collection怎么用_Laravel集合常用函数详解  Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  如何在Windows环境下新建FTP站点并设置权限?  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  EditPlus中的正则表达式实战(6)  Laravel怎么创建控制器Controller_Laravel路由绑定与控制器逻辑编写【指南】  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  Laravel如何生成和使用数据填充?(Seeder和Factory示例)  Java解压缩zip - 解压缩多个文件或文件夹实例  JavaScript如何实现倒计时_时间函数如何精确控制  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  如何用虚拟主机快速搭建网站?详细步骤解析  JavaScript如何实现错误处理_try...catch如何捕获异常?  如何确保FTP站点访问权限与数据传输安全?  高防服务器如何保障网站安全无虞?  香港服务器WordPress建站指南:SEO优化与高效部署策略  如何在服务器上配置二级域名建站?  如何在建站之星绑定自定义域名?  香港服务器部署网站为何提示未备案?  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)