android转场动画的两种方式

腾讯T7手记:Android转场动画的前世今生! 二、Android 5.0 Material 转场动画在 Android 5.0 之后,我们可以使用 Material Design 为我们带来的转场动画。不说别的,先看几个案例:官方Demo掘金APP我的APP从上到下依次是官方Demo、掘金App和我的开源项目Hoo,与最初的转场的不同点如下:如果说 overridePendingTransition 对应着 View 动画,那么 Material 转场对应着的是属性动画,所以可以自定义界面过渡动画。除了进入、退出场景,Material 转场为我们增加一 阅读详情

有空学习一下转场动画的使用

方法一:在代码中设置

分解,滑动进入,淡入淡出
参考:http://blog.youkuaiyun.com/u012702547/article/details/51289789

用法:
首先,把之前启动Activity的代码改成下面的写法:

[java] view plain copy print?
startActivity(new Intent(this, Main2Activity.class), ActivityOptions.makeSceneTransitionAnimation(this).toBundle());  

添加完成之后,在Main2Activity中设置该Activity的进出场动画即可:
1.分解

[java] view plain copy print?
getWindow().setEnterTransition(new Explode().setDuration(2000));  
getWindow().setExitTransition(new Explode().setDuration(2000));  

OK,就是这么简单,哦,对了,大家一定要记得在styles.xml文件中添加下面一行代码,表示激活Activity中元素的过渡效果:

[java] view plain copy print?
<item name="android:windowContentTransitions">true</item>  

2.滑动进入

[java] view plain copy print?
getWindow().setEnterTransition(new Slide().setDuration(2000));  
getWindow().setExitTransition(new Slide().setDuration(2000));  

3.淡入淡出

[java] view plain copy print?
getWindow().setEnterTransition(new Fade().setDuration(2000));  
        getWindow().setExitTransition(new Fade().setDuration(2000));  

4.共享元素

使用共享元素动画的时候,我们需要首先给MainActivity和Main2Activity中的两个button分别添加Android:transitionName=”mybtn”属性,并且该属性的值要相同,这样系统才知道这两个控件是共享元素。设置完成之后,接下来就是启动Activity的代码了,如下:

ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, mTv, "tv");
startActivityForResult(intent,REQUEST_CODE_COUNTRY,options.toBundle()/*ActivityOptions.makeSceneTransitionAnimation(this).toBundle()*/);

如果需要有多个共享元素,使用Pair

startActivity(new Intent(this, Main2Activity.class),  
                ActivityOptions.makeSceneTransitionAnimation(this, Pair.create(((View) iv1),"myiv"), create(((View) textView),"mytv")).toBundle());  

方法二:在xml中设置

参考:http://blog.youkuaiyun.com/wl9739/article/details/52833668
步骤:

1.在 res/ 目录下创建 transition 文件夹,在该文件夹下定义界面转场动画和共享元素的动画。
2.在 res/value/style 文件中为每个 Activity 指定转场动画的 style ,并在 AndroidManifest.xml 文件中为每个 Activity 设置对应的 android:theme。
3.在 Activity 调用 startActivity() 切换动画前,使用 ActivityOptionsCompat 来创建转场动画时的共享对象。

同样是上面的三种效果,这里只演示一种集合
第一步:
detail_enter.xml

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android">
    <slide android:slideEdge="bottom">
        <targets>
            <target android:targetId="@id/cardview"/>
        </targets>
    </slide>

    <fade>
        <targets>
            <target android:excludeId="@android:id/statusBarBackground"/>
            <target android:excludeId="@android:id/navigationBarBackground"/>
            <target android:excludeId="@id/cardview"/>
        </targets>
    </fade>
</transitionSet>

main_exit.xml

<?xml version="1.0" encoding="utf-8"?>
<explode xmlns:android="http://schemas.android.com/apk/res/android">
    <targets>
        <target android:excludeId="@android:id/navigationBarBackground"/>
        <target android:excludeId="@android:id/statusBarBackground"/>
    </targets>
</explode>

标签里面定义需要转场(或者不需要转场)的目标 id ,这个 id 可以使系统自带的,也可以是我们自己视图中的 view 的 id,每一个 id 需要单独在 标签中定义,android:targetId 表示目标 ID 需要进行过渡转换的 view,而 android:excludeId 表示我们不需要该 ID 的 view 进行过渡转场。上面的那段代码的意思是说,除了状态栏和导航栏以外所有的 view,都执行 explode 动画。

第二步:
styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="AppTheme.Main">
        <item name="android:windowExitTransition">@transition/main_exit</item>
    </style>

    <style name="AppTheme.Detail">
        <item name="windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowAllowEnterTransitionOverlap">false</item>
        <item name="android:windowEnterTransition">@transition/detail_enter</item>
    </style>

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:windowContentTransitions">true</item>
    </style>
</resources>

第三步:

ActivityOptions options =
                ActivityOptions.makeSceneTransitionAnimation(this, mTv, "tv");


        Intent intent = new Intent(this, MainActivity.class);
        intent.putExtra("city", "中国");
        startActivityForResult(intent, REQUEST_CODE_COUNTRY,options.toBundle()/*ActivityOptions.makeSceneTransitionAnimation(this).toBundle()*/);
Android页面之间切换的转场动画的两种方法 第二种方法是使用转场动画,通过设置进入动画和退出动画来实现页面的平移、缩放、旋转等效果。根据具体的需求和效果,我们可以选择适合的方法来实现页面之间的转场动画。在上述代码中,我们使用ObjectAnimator来创建一个淡入动画和一个淡出动画,并通过设置不同的起始值和终止值来控制页面的透明度变化。在上述代码中,我们首先定义了进入动画和退出动画的资源文件,分别表示页面进入和退出时的动画效果。同时,为了提高用户体验,我们还需要注意动画的流畅性和性能消耗,避免过度使用动画效果导致应用程序的卡顿和耗电。 阅读详情

相关推荐

Unity采样器过多导致URP默认的Lit.Shader报错(shader error in ‘universal render pipeline/lit’: maximum ps_4_0 samp)

Shader中多个Sample Texture2D,Sample Texture3D或者类似节点的使用,该类节点都需要一个采样器,如果Shader使用超过了16个纹理采样器,如多个Base Color,Normal Map等,就容易超出。是因为每种Shader Model和GPU都有一个对纹理采样器数量的限制,是因为每个采样器都需要在显卡占用一个独立的寄存器,而寄存器的数量是有限的,当超过限制,显卡无法分配更多的寄存器给新的采样器,因此会导致编译错误。2.什么原因导致纹理采样器超出16个?

qq_41884036的博客 4233

android转场动画总结

Android转场动画总结 1.Android5.0以前转场动画 Activity overridePendingTransition(R.anim.activity_in, R.anim.activity_out); Fragment supportFragmentManager.beginTransaction().setCustomAnimations(R.anim.fragment_enter, R.anim.fragment_exit); 2.从Android 5.0 之后,可以用 A

贰佰没有伍 2112

(35)远程识别(又称无人机识别)(一)

Ardupilot官网关于《Peripheral Hardware》的翻译 —《(35) 远程识别(又称无人机识别)》。

无人机开发(开源Ardupilot) 4万+

Android 应用转场动画RemoteAnimation

Launcher3源码中RemoteAnimation、多任务、手势相关代码都在quickstep目录下,RemoteAnimation见LauncherAppTransitionManagerImpl.java 类...// 注册应用关闭监听做动画// 权限判断@Override// 应用打开回调到这,可执行图标和窗口动画q......// 应用打开和fwk进行交互其核心是RemoteAnimationAdapterCompat类// 开开始的回调try {

m0_64365896的博客 3228

Sobel原理及计算过程详解

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。首先,我们需要构建一个Sobel算子,通常是一个 3x3 的矩阵。Sobel算子可以分别计算水平和垂直方向的梯度值,然后将两者合并得到总梯度值。索贝尔算子(Sobel operator)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度近似值。所以,我们假设选择图像矩阵中的点A(1, 1),即第二行第二列的元素,对应的。接下来,我们将使用Sobel算子计算这个点的梯度值。

2301_76461741的博客 1万+

移动硬盘报错0x80070570?5分钟搞定CHKDSK修复(附详细参数说明)

本文针对移动硬盘报错0x80070570问题,提供了详细的CHKDSK修复方法。通过5分钟核心修复流程,指导用户使用系统自带工具快速修复文件系统逻辑错误,恢复硬盘访问。文章还深入解析了CHKDSK参数,并提供了备选数据恢复方案与日常防护建议。

app77的博客 233

『Android 技能篇』优雅的转场动画之 Transition

前言 先直接上效果图: 相信大家在平常开发也会遇到类似的转场动画,如果想要要实现上图的效果有哪些方式呢? 首先分析一下转场过程,我们把起始 View 分别定义为 startView 和 endView。startView 为常见的列表布局,左侧头像和右侧为文本介绍;endView 为详情页面,置顶的大图和详细的文本介绍。 不难发现,这些元素都是对应关系,只不过起始状态的基本属性不同: 头像,位置和大小以及 scaleType 发生变化 背景,颜色、位置和大小发生变化 名称,字体大小、颜色和位置发生变化

下位子的博客 1185

【SPSS操作】Non-parametric ANCOVA (Quade‘s) in SPSS

在SPSS中执行Quade的非参数ANCOVA需要手动计算步骤,因为SPSS没有内置的菜单选项。以下是详细的操作指南。

weixin_43689393的博客 1277

Android动画全篇系列(十一)——Activity转场动画

文章目录一、前言二、利用Animation 一、前言 Activity的转场动画一共有两种:1、利用Animation;2、利用Transition。 通过之前的学习,我们知道Animation就是补间动画,而Transition是过渡动画框架中的角色,且其底层的实现就是Animator。 在Android 5.0之后,才支持Transition。 二、利用Animation ...

catzifeng的博客 3441

在matlab中运行自带的模块(以CCSDS LDPC Decoder模块为例)

最新版的获取需要注册 MathWorks 账户 访问账户注册页面:www.mathworks.cn/mwaccount/register。下载新版本或历史版本的MATLAB,请登陆:https://www.mathworks.cn/downloads 并下载。点击此处可以拷贝调用例程的命令,在matlab命令行输入即可自动获取代码。可以看到页面中写了该模块需要在R2022b以上版本使用。运行.m文件可以生成simulink运行所需要的数据。可以看到左侧下载到了官方历程的文件。之后双击slx文件即可打开。

qq_28455081的博客 885

【ROS】usb_cam相机标定

1. 唠叨两句 当我们要用相机做测量用途时,就需要做相机标定了,不然得到的计算结果会有很大误差,标定的内容包括三部分:内参,外参还有畸变参数。所以标定的过程就是要求得上面这些参数。 以前弄这个事估计挺麻烦,需要做实验和计算才能得到,现在通过ros的开源包几分钟就能完成相机标定,感激! 具体的内外参和畸变系数的说明,可以看看Reference里面的第一个链接,写得很详细。 2. 准备工作 要准备三样东西: usb_cam的ROS启动包 相机标定的ROS包 还有一个用于标定的棋盘格 1)usb_cam启动包

Will_Ye的博客 8199

浅谈View动画及Activity的华丽转场

View动画的作用对象是View,它支持4种动画效果: 平移动画 translate 缩放动画 scanle 旋转动画 roteate 透明度动画 alpha Animation对应的四个子类: TranslateAnimation ScanleAnimation RoteateAnimation AlphaAnimateion

染火枫林的专栏 457

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Activity转场动画效果

Activity transition(Activity转场动画效果)概念:两个Activity进行跳转的时候,转场动画。 ActivityOptions类。只支持API21以上的版本。 版本判断会比较麻烦,谷歌很贴心 设计了一个兼容类:ActivityOptionsCompat(v4包中) 但是此类在低版本上面并没有转场动画效果,只是解决了我们手动去判断版本的问题而已。

移动端开发 436

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android5.0Activity的转场动画、过渡动画、过场动画、跳转动画

Activity的转场动画很早就有,但是太过于单调,样式也不好看,于是Google在Android5.0之后,又推出的新的转场动画,效果还是非常炫的,今天我们一起来看一下。 Android5.0之后Activity的出入场动画总体上来说可以分为两种,一种就是分解、滑动进入、淡入淡出,另外一种就是共享元素动画,下面我们分别就这两种动画进行说明: 前提说明: ——开发工具:Android stu...

丿灬安之若死 593

WINCC7.3破解文件

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

Android-Animation-Set项目解析:深入理解Transition转场动画与共享元素

在Android应用开发中,优雅的动画效果能显著提升用户体验。Android 5.0(Lollipop)引入的Transition框架为开发者提供了强大的工具,可以轻松实现复杂的转场动画和共享元素效果。本文将深入解析Transition动画的核心概念和实现方式。 ## 一、Transition框架概述 Transition框架是Android 5.0引入的重要特性,它基于两个核心概念: 1....

gitblog_01143的博客 515

ios中uiview 转场动画

//转场动画1--头尾 -(void)TransitionAnimation1{ [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:0.5]; [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp f...

weixin_34150503的博客 142

Android开发进阶:自定义控件与动画

自定义控件是Android开发中不可或缺的一部分。随着应用功能的日益丰富,系统提供的标准控件已无法满足多样化的需求。自定义控件可以让我们根据实际需求设计出独特的UI元素,提高应用的辨识度。例如,许多流行的社交媒体应用,如微信、微博等,都采用了大量自定义控件,使得其界面更加美观、易用。这些自定义控件不仅提升了用户体验,还增强了应用的竞争力。自定义控件的实现主要有两种方法:继承自系统控件和完全自定义。继承自系统控件:这种方法相对简单,只需要在原有的系统控件基础上进行扩展或修改。例如,我们可以继承自。

2501_92488950的博客 446

android 动画样式

import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.GestureDetector; import androi

137

【补间动画示例】Tweened Animation

代码中定义动画示例public class MainActivity extends ListActivity {    private ImageView iv;    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        String[] ar...

weixin_34221775的博客 160

JetPack系列——Navigation(一),我离职后面试收割小米等大厂offer

其中,destination指定了要跳转到的fragment,这也就是为什么在导航文件中创建fragment时要指定id的原因。定义好action之后,在FirstFragment中添加跳转的点击事件,使用Navigation将页面导航到SecondFragment中: val view=inflater.inflate(R.layout.fragment_first, container, false) val binding = FragmentFirstBinding.bind(view) bindi

m0_66264588的博客 219

Android Fragment总结

本文总结了Android Fragment的核心概念和使用方法。Fragment是可嵌入Activity的UI组件,具有自己的生命周期和布局。文章详细介绍了Fragment的生命周期方法及其作用,包括onAttach()、onCreateView()等11个关键方法。同时讲解了Fragment的两种创建方式:静态创建(XML定义)和动态创建(代码添加)。还介绍了Fragment事务操作(add/replace/remove等)以及Fragment间通信的最佳实践,推荐通过接口实现Fragment与Activ

xiangxiongfly 338

android转场动画,让你的APP瞬间绚丽起来

友好的交互体验能够吸引眼球,android API 21(5.0)后系统内置了Activity之间的切换动画,不仅可以让用户看起来舒服,而且实现起来也特别简单。 一、通过overridePendingTransition实现转场动画 这种实现方式应该算最简单的,可以实现包括缩放、平移、alpha值(透明度)变化的转场动画,并且定制性特别强,项目中比较推荐使用这个。 1.1、页面进入实现方式...

流星雨的博客 1万+

Android动画特效:属性动画与转场动画

本文详细阐述了Android动画特效中的属性动画与转场动画。属性动画具有高性能和灵活性,适用于UI元素动画、非UI元素动画和自定义动画等场景。转场动画适用于Activity和Fragment之间的过渡,具有简单的API和丰富的效果。开发者可以根据实际需求,选择合适的动画实现方式。在未来,随着Android技术的不断发展,动画特效的应用将更加广泛。开发者需要不断学习和掌握新的动画技术,以提高用户体验。同时,针对性能和兼容性问题,开发者可以尝试优化动画效果,以满足不同版本Android设备的需求。

2501_92489088的博客 514

Android动画效果:属性动画与转场动画

本文从属性动画和转场动画的概念、实现原理、使用方法和优点等方面进行了详细阐述。属性动画具有灵活性、高效性和易于实现复杂动画效果的优点,适用于自定义动画场景;而转场动画具有丰富的效果、简化开发和提升用户体验的优点,适用于Activity和Fragment之间的界面切换。在选择动画类型时,开发者需要根据具体场景和需求进行选择。属性动画和转场动画各有优势,合理使用可以为Android应用带来更加出色的用户体验。在未来,随着Android动画技术的发展,我们可以期待更多丰富的动画效果和更高效的动画实现方式。

2501_92488972的博客 828
上一篇: 补间动画AnimationSet中放入TranslateAnimation和ScaleAnimation同时执行的顺序导致动画回来的问题
下一篇: Android中获取颜色的几种方法
missingcall
博客等级 码龄10年 8粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值