切换Activity时的动画overridePendingTransition(A,B)解析

2023-11-22 07:11

本文主要是介绍切换Activity时的动画overridePendingTransition(A,B)解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

声明:转载请注明出处:http://blog.csdn.net/hello_chillax/article/details/45690879

目的: Android中不同Activity之间的切换是不可避免的事情,那么怎么才能让Acitivity的切换更优雅呢,Android中提供了一个方法来解决这个问题,即overridePendingTransition(A,B)函数。

效果: 用一张图来表示该函数能实现的效果、 
效果一:新的Activity从左侧出来。 
效果二:新的Activity从右侧出来。 
这里写图片描述

我们先说一下overridePendingTransition**(A,B)两个参数是什么意思。

startActivity(new Intent(this,OtherActivity.class));/*** R.anim.slide_in_right:新的Activity进入时的动画,这里是指OtherActivity进入时的动画* R.anim.slide_out_left:旧的Activity出去时的动画,这里是指this进入时的动画*/overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left);finish();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

我们来实现一个效果:新的Activity从右侧滑动出来,就像是上图中点击第一个button划出第二个界面一样。

这里我们做一个约定,约定整个窗口的最左侧的x轴坐标是0,最右侧的x轴坐标是100%p,那么我们有: 
旧的Activity实际上是x轴坐标发生了变化:0—>-100%p 
新的Activity实际上是x轴坐标发生了变化:100%p—>0 
如图: 
这里写图片描述

下面我们来用一个动画来实现0—>-100%p这个效果:

<set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:duration="2000"android:fromXDelta="0"android:toXDelta="-100%p"/></set>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

同理,实现100%p—>0的效果:

<set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:duration="2000"android:fromXDelta="100%p"android:toXDelta="0"/></set>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

那么这两个效果起个什么名字呢: 
这里写图片描述

什么意思呢: 
**第一个:slide_in_left:从左边划进来:-100%p—>0 
第二个:slide_in_right:从右边划进来:100%p—>0 
第三个:slide_out_left:从左边划出去:0—>-100%p 
第四个:slide_out_right:从右边划出去:0—>100%p**

是吧~~

最后给出四个效果的代码实现:

R.anim.slide_in_left

<set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:duration="2000"android:fromXDelta="-100%p"android:toXDelta="0"/></set>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

R.anim.slide_in_right

<set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:duration="2000"android:fromXDelta="100%p"android:toXDelta="0"/></set>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

R.anim.slide_out_left

<set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:duration="2000"android:fromXDelta="0"android:toXDelta="-100%p"/></set>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

R.anim.slide_out_right

<set xmlns:android="http://schemas.android.com/apk/res/android"><translate android:duration="2000"android:fromXDelta="0"android:toXDelta="100%p"/></set>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

恩,比较详细了,不明白请留言~

最后,Demo:http://download.csdn.net/detail/hello_chillax/8694165

这篇关于切换Activity时的动画overridePendingTransition(A,B)解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/408415

相关文章

网页解析 lxml 库--实战

lxml库使用流程 lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 XPath表达式提供了良好的支 持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 pip install lxml lxm| 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,下面来介绍一下 lxml 库

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

OWASP十大安全漏洞解析

OWASP(开放式Web应用程序安全项目)发布的“十大安全漏洞”列表是Web应用程序安全领域的权威指南,它总结了Web应用程序中最常见、最危险的安全隐患。以下是对OWASP十大安全漏洞的详细解析: 1. 注入漏洞(Injection) 描述:攻击者通过在应用程序的输入数据中插入恶意代码,从而控制应用程序的行为。常见的注入类型包括SQL注入、OS命令注入、LDAP注入等。 影响:可能导致数据泄

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

多线程解析报表

假如有这样一个需求,当我们需要解析一个Excel里多个sheet的数据时,可以考虑使用多线程,每个线程解析一个sheet里的数据,等到所有的sheet都解析完之后,程序需要提示解析完成。 Way1 join import java.time.LocalTime;public class Main {public static void main(String[] args) thro

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时,Curator 是一个非常流行的客户端库,它简化了 ZooKeeper 的使用,提供了高级的抽象和丰富的工具。本文将详细介绍 Curator 框架,包括它的设计哲学、核心组件以及如何使用 Curator 来简化 ZooKeeper 的操作。 1