Activity切换的几种动画效果设置

Android动画——使用动画启动Activity 如何通过过渡动画启动Activity 阅读详情

分享一下Activity切换时实现动画效果的几种方式

     
   首先  切换Activity可以通过两种方式,

   1 调用 startActivity(),进入新的Activity 

   2 在当前的Activity 调用 finish() 结束当前的界面,回到上一个界面


 (一) 调用 overridePendingTransition()方法实现 Activity切换效果,

       先定义两个动画效果文件

  R.anim.in

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

  R.anim.out

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

在startActivity()之后调用

Intent intent = new Intent(MainActivity.this, MainActivity2.class);  
startActivity(intent);  
overridePendingTransition(R.anim.in, R.anim.out);

overridePendingTransition()方法的第一个参数:需要打开的Activity进入时的动画;第二个参数:需要关闭的Activity离开时的动画,MainActivity2将会执行R.anim.in动画,那么 MainActivity将会执行 R.anim.out动画


还有一种可以在finish()之后调用

   finish();  
    overridePendingTransition(R.anim.in, R.anim.out);  

效果一样

需要注意的是:  overridePendingTransition()方法只能在startActivity()或者finish()执行之后立即调用才会生效

                          overridePendingTransition()方法是可以在子线程运行的

(二) 通过指定Style,然后调用指定给当前的Activity

<style name="mystyle" parent="android:Animation">  
     <item name="@android:windowEnterAnimation">@anim/in</item>  
     <item name="@android:windowExitAnimation">@anim/out</item>  
</style>

在Activity中

getWindow().setWindowAnimations(R.style.mystyle); 

(三) Activity的配置文件中,在Theme里面指定该Style

        定义Application的Theme

<application
        Android:allowBackup="true"
        Android:icon="@mipmap/ic_launcher"
        Android:label="@string/app_name"
        Android:supportsRtl="true"
        Android:theme="@style/AppTheme">

     在AppTheme样式具体定义出样式
    
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="Android:windowAnimationStyle">@style/animStyle</item>
    </style>

           <style name="animStyle">
        <item name="Android:activityOpenEnterAnimation">@anim/in</item>
        <item name="Android:activityOpenExitAnimation">@anim/out</item>
    </style>

  设置好之后,当你启动新的Activity或者结束当前的Activity就会出现in/out动画效果了

   补充一点:Android:windowAnimationStyle 中有四种item的动画  

                   <item name="android:activityOpenEnterAnimation"></item>
                   <item name="android:activityOpenExitAnimation"></item>
                   <item name="android:activityCloseEnterAnimation"></item>
                   <item name="android:activityCloseExitAnimation"></item>


(四) 使用ActivityOptions实现Activity切换动画

        ActivityOptions是在google在新的sdk中给我们提供了另外一种Activity的过度动画并且提供了兼容包:ActivityOptionsCompat。

        android5.0才可以使用
 

  (1)在Activity中设置   

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
            Transition explode = null;
            //       其中有 explode ,fade ,no_transition
            //       slide_bottom ,slide_top ,slide_left ,slide_right 这些效果
            explode = TransitionInflater.from(this).inflateTransition(android.R.transition.explode);
            getWindow().setEnterTransition(explode);
            getWindow().setEnterTransition(explode);
            setContentView(R.layout.activity_main);
    }

  

 public void switchActivity(View view) {
        Intent intent = new Intent(this, Main1Activity.class);
        //  在startActivity执行跳转时调用startActivity的重载方法,
        // 执行ActivityOptions.makeSceneTransitionAnimation方法
        startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
        finish();
    }


安卓设置Activity切换动画无效的问题 有次做App想设置Activity的切换动画时,只能用Window,怎么都不行,还怀疑是手机的问题 后来参考了别人的程序,发现就是那么设置的,于是新建了一个项目,再次尝试竟然就可以了 终于找到了原因,我用的Activity设置了SingleInstance属性,所以Activity动画不会播放,只有Window动画会播放。改成SingleTop就好了。 阅读详情

相关推荐

AndroidActivity自定义切换动画,左右滑动切换activity

Android实现activity切换效果的两种方式: 首先在res下创建anim文件夹,并且创建out_from_left.xml和in_from_right.xml两个动画资源 ### 调用方法实现 Android2.0开始在Activity增加了一个方法: public void overridePendingTransition (int enterAnim, int exit

你只是看起很努力 6092

安卓项目实战之设置Activity跳转动画的5种实现方式

前言 在介绍activity的切换动画之前我们先来说明一下实现切换activity的两种方式: 1,调用startActivity方法启动一个新的Activity并跳转其页面 2,调用finish方法销毁当前的Activity返回上一个Activity界面 当调用startActivity方法的时候启动一个新的activity,这时候就涉及到了旧的Activity的退出动画和新的Activity的...

智玲君 8780

打造超炫Android按钮动画与Activity切换效果

在Android应用开发中,用户界面的美观性和交互性对于提升用户体验至关重要。按钮作为界面中最常见的交互元素之一,其动画效果的实现就显得尤为重要。按钮动画不仅能够提升视觉效果,还能给予用户直观的操作反馈,增加操作的趣味性和满足感。本章将对Android按钮动画的实现方法进行探讨,从基础的动画实现方式到高级的动画设计技巧,帮助开发者打造更加丰富和吸引人的用户界面。在开始之前,我们需要了解Android动画的分类。

weixin_30218749的博客 1433

给Activity切换加入动画

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666) 在startActivity或finish()后,调用overridePendingTransition方法,可以加入动画效果。例如: 使用Android自带的淡入淡出:android.R.anim.fade_i...

孤云博客 6491

告别Keil?在Mac上配置STM32CubeIDE + CMSIS-DAP调试器全攻略(含常见报错解决)

本文详细介绍了在Mac平台上配置STM32CubeIDE与CMSIS-DAP调试器的全流程,包括硬件准备、软件安装、工程创建及调试优化。通过实战指南,帮助开发者高效完成STM32开发,解决常见报错问题,提升开发效率。

weixin_30485379的博客 433

TSmaster CANFD配置避坑指南:为什么你的PCAN盒不支持最新版本?

本文针对TSmaster配置PCAN硬件进行CANFD通信时的常见问题,提供了详细的避坑指南。重点解析了CANFD配置中TSEG1等关键参数的理解误区,并深入探讨了TSmaster新版本与PCAN硬件驱动之间的兼容性变化,帮助工程师快速定位并解决连接失败或无法发送CANFD报文等问题。

alpha的博客 543

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

上一篇文章中我们讲解了在Activity启动过程中获取组件宽高的五种方式。在Activity的启动过程中如果我们直接在生命周期方法中通过view.getWidth()或者是view.getHeight()方法获取组件的宽度和高度其结果都是0,为什么会出现这个问题呢? 其实看过我以前写过的Activity启动流程Activity布局加载流程Activity布局绘制流程的同学应该对Activity的启动流程和其布局加载绘制流程不陌生,Activity的启动流程和Activity的布局文件加载绘制流...

qq_21467035的博客 2万+

Lakes.AERMOD.View.v8.9.0 1CD大气扩散模型软件包

Lakes.AERMOD.View.v8.9.0 1CD大气扩散模型软件包 Lakes Environmental ARTM View v1.4.2 1CD放射物扩散模拟模型 Aermod View是一套完整的、功能强大的大气扩散模型软件包,并将美国EPA指定的大气扩散模型(如下)完美的集成成为一个综合的操作平 台: - AERMOD 电话TEL:18980583122  客服 QQ:11

yyii0000的博客 4001

Android_Activity开启动画的设置

Android开发过程中,很多时候我们需要Activity开启和关闭的时候有一定的动画效果,如何通过配置文件实现动画效果? 一般分为二步: 1、在res资源文件夹下面的anim(没有的话创建一个)创建.xml的动画文件 创建一个从上到下的动画文件top_to_bottom.xml <translate android:fromYDelta="0"

Ricky‘s Home 4406

SMPTE ST 2110 概论(三)

SMPTE ST 2110 概论(三)ST 2110-30:未压缩的PCM音频流ST 2110-31:非PCM音频传输ST 2110-40:辅助数据传输结语 ST 2110-30:未压缩的PCM音频流 鉴于音频系统是广播系统中最复杂,也是最重要的一套系统,我们先来回顾一下广电音频系统的历史。 最老式的音频都是基于模拟信号的,具有有限的动态范围,并且用连续的电压变化来描述音频。再后来就基于数字信号(...

Cidd0422的博客 1万+

ResNet改进(20):融合Swin Transformer与ResNet

这种混合架构的设计理念是:在保留CNN强大局部特征提取能力的同时,引入Transformer的全局建模优势。我们实现的模型在ResNet18的基础上嵌入了一个简化版的Swin Transformer Block,旨在探索两种范式结合的可能性。通过在ResNet早期阶段引入Transformer模块,我们既保留了CNN强大的局部特征提取能力,又获得了Transformer的全局建模优势。本文提出的ResNet与Swin Transformer混合架构,探索了CNN与Transformer结合的可能性。

2401_82355416的博客 859

activity切换无动画效果的实现

首先说明为什么需要activity切换无动画效果。Android设置activity的默认切换效果是新的activity从右向左移入画面中,具有明显的跳转感觉;但是,某些activity,明显的跳转反而违和,譬如:点击activity_A的的搜索框,跳转到activity_B的搜索框并获得焦点,显示软键盘,等待用户输入,使用无动画的跳转效果更佳。或许还有其它的需要原因,下面进入正题。      

Bcai2的专栏 1万+

【DaVinci Configurator专题】-2-将CAN 2.0或CANFD Matrix的Arxml/DBC文件导入到CFG

共9页 目录 1 打开DaVinci Configurator,导入Arxml文件 2 解决导入Arxml文件后可能会出现的一些错误 3 验证CFG的配置 4 根据CFG的配置生成代码 5 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键词: Open the Input Files Assistant Complete update process Update ECU configurati

「汽车电子助手」的博客 6126

Activity的切换动画

Android默认切换Activity的动画满足不了你的需求?那就来看看这篇文章吧!分享了:如何自定义Activity的切换动画、创建anim文件、创建动画xml文件,overridePendingTransition的使用方法。

Austin的博客 6233

图神经网络实战(8)——图注意力网络(Graph Attention Networks, GAT)

图注意力网络 (Graph Attention Networks, GAT) 是对图卷积网络 (Graph Convolutional Network, GCN) 的改进,提出了一种通过自注意力 (self-attention) 过程计算的加权因子,而不是使用静态的归一化系数。在本节中,我们介绍了 GAT 架构。通过从线性变换到多头注意力的四个主要步骤,了解了 GAT 的工作原理,并在 NumPy 中从零开始构建了 GAT 层。最后,将 GAT 模型应用于 Cora 和 CiteSeer 数据集。

盼小辉丶的博客 1万+

【毕设救星】从0到1打造YOLOv8货架商品检测与可视化系统,让你的毕设脱颖而出

本文介绍了一个基于YOLOv8的货架商品检测系统毕设项目。系统采用YOLOv8模型进行商品检测,包含环境搭建、数据集准备、模型训练与验证等完整流程,并开发了可视化UI界面。项目聚焦智能零售应用场景,技术栈完整且易于实现,适合作为计算机视觉方向的毕业设计。文章详细指导了从数据标注、模型训练到界面开发的全过程,提供代码示例和实用建议,帮助学生快速完成毕设并提升答辩表现。

LXY_LOVE36的博客 103

Android切换Activity的动画效果

overridePendingTransition 方法必须在startActivity()或者 finish()方法的后面。Android已经内置了几种动画效果,可以见 android.R.anim 类。一般情况下我们需要自己定义屏幕切换的效果。首先我们先了解Activity的位置定义,如下图:从上图可以看出,以手机屏幕下面边未X轴,屏幕左边为Y轴,当Activity在X轴值为-100%p时,刚...

qq_41161483的博客 4133

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Activity 设置切换动画

设置Activity的切换动画,有两种方式: 1.使用overridePendingTransition(新Activity进入动画, 旧Activity退出动画),需要紧接在startActivity 和finish()后。 2.在manifest中配置Activity的theme。 下面着重说明第二种情况: @style/activityAnimatStyle

luohaowang320的专栏 3438

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Dialog、Activity和Fragment设置切换动画

Dialog切换动画的设置 设置Dialog首先通过getWindow()方法获取它的窗口,然后通过getAttributes()方法获得window的WindowManager.LayoutParams lp, lp有个公共属性windowAnimations, 只要把要实现的animation的id赋值给它就可以了。 下面看看这个animation应该怎么写,窗口进入和退出的效果分别是通过...

欢迎关注微信公众号:DroidMind 3088

android 活动切换动画,android Activity间设置切换动画的两种方式

大多数Android系统默认Activity间的动画切换效果为,右边滑入,左边滑出;1.代码中切换- 使用overridePendingTransition适用情况 : 个别activity的切换动画调用时机 : overridePendingTransition ,一般在代码中的startActivity() 或 finish()后调用参数解读 :overridePendingTransiti...

weixin_33162568的博客 2416

Andorid属性动画实现activity的切换效果

系统自带的activity切换效果不尽如人意,需要我们子

hlglinglong的专栏 1548

安卓统一添加activity切换动画

安卓统一添加activity切换动画背景说明在实际 的应用开发过程中各种动画的使用不仅能使用户感觉起来更加流畅而且合适的动画效果可以帮助用户快速的熟悉应用操作,对提升用户体验来说,动画是必不可少的。在安卓2.0之后,安卓提供了一个很方便的API用来设置安卓界面切换动画:overridePendingTransition(EnterAnim, ExitAnim);发现问题但是这里有一个缺点,

GcsSloop 3222

activity 之间切换添加动画效果(一)

在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity增加了一个方法: public void overridePendingTransition (int enterAnim, int exitAnim) 其中: ente

braddoris的专栏 3835

Android中的动画详解系列【4】——Activity之间切换动画

前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自定义动画,这一篇我们来看看如何将Android中的动画运用到实际开发中的一个场景——Activity之间跳转动画。一、定义动画资源如果对Android中的动画不了解,请先阅读《Android中的动画详解系列【1】——逐帧动画》《Android中的动画详解系列【2】——飞舞的蝴蝶》《Android中的动画详解系列【3】——自定义动画研究

水寒 3984

android Activity切换动画设置方式总结

转自:http://mobile1.riaos.com/?p=2023036 android Activity切换动画设置方式总结 android2.0+可以用overridePendingTransition()方法设置activity切换动画 但必须在startActivity()或finish()之后设置,否则无法覆盖系统默认切换动画。 系统默认切换动画可

hijunmeng的专栏 699

android activity消失动画效果,Android:Activity切换动画、overridePendingTransition、fragment动画...

1.跟overridePendingTransition(enterAnim, exitAnim)这个方法有关,可以设置出入的动画。findViewById(R.id.button2).setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Intentintent=newIntent(On...

weixin_36110344的博客 900
上一篇: ListView不同Item的适配详解
下一篇: 自定义View实现导航栏与主面板交互效果
丶一叶扁舟
博客等级 码龄10年 0粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值