android activity的跳转动画,实现activity跳转动画的若干种方式

android activity的跳转动画,实现activity跳转动画的若干种方式第一种:(使用overridePendingTransition方法实现Activity跳转动画)在Activity中代码如下/***点击按钮实现跳转逻辑*/button1.setOnClickListener(newView.OnClickListener(){@OverridepublicvoidonClick(Viewv){/***在调用了startActivity方法之后…

大家好,又见面了,我是你们的朋友全栈君。

第一种: (使用overridePendingTransition方法实现Activity跳转动画)

在Activity中代码如下

/**

* 点击按钮实现跳转逻辑

*/

button1.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

/**

* 在调用了startActivity方法之后立即调用overridePendingTransition方法

*/

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

startActivity(intent);

overridePendingTransition(R.anim.slide_in_left, R.anim.slide_in_left);

}

});

在anim文件下代码如下

Android:shareInterpolator=”false”

Android:zAdjustment=”top”>

Android:duration=”200″

Android:fromXDelta=”-100.0%p”

Android:toXDelta=”0.0″ />

第二种: (使用style的方式定义Activity的切换动画)

从清单文件入手

Android:allowBackup=”true”

Android:icon=”@mipmap/ic_launcher”

Android:label=”@string/app_name”

Android:supportsRtl=”true”

Android:theme=”@style/AppTheme”>

进入AppTheme

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

@style/activityAnim

@anim/slide_in_top

@anim/slide_in_top

在windowAnimationStyle中存在四种动画

activityOpenEnterAnimation // 用于设置打开新的Activity并进入新的Activity展示的动画

activityOpenExitAnimation // 用于设置打开新的Activity并销毁之前的Activity展示的动画

activityCloseEnterAnimation // 用于设置关闭当前Activity进入上一个Activity展示的动画

activityCloseExitAnimation // 用于设置关闭当前Activity时展示的动画

Activity中的测试代码如下

/**

* 点击按钮,实现Activity的跳转操作

* 通过定义style的方式实现activity的跳转动画

*/

button2.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

/**

* 普通的Intent跳转Activity实现

*/

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

startActivity(intent);

}

});

第三种: (使用ActivityOptions切换动画实现Activity跳转动画)

第一步

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 设置contentFeature,可使用切换动画

getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

Transition explode = TransitionInflater.from(this).inflateTransition(Android.R.transition.explode);

getWindow().setEnterTransition(explode);

setContentView(R.layout.activity_main);

}

第二步

/**

* 点击按钮,实现Activity的跳转操作

* 通过Android5.0及以上代码的方式实现activity的跳转动画

*/

button3.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(MainActivity.this, ThreeActivity.class);

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this).toBundle());

}

});

第四种: (使用ActivityOptions之后内置的动画效果通过style的方式)

先在Application项目res目录下新建一个transition目录,然后创建资源文件activity_explode,编写如下代码

Android:duration=”300″ />

定义style文件

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

@transition/activity_explode

@transition/activity_explode

执行跳转逻辑

/**

* 点击按钮,实现Activity的跳转操作

* 通过Android5.0及以上style的方式实现activity的跳转动画

*/

button4.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

/**

* 调用ActivityOptions.makeSceneTransitionAnimation实现过度动画

*/

Intent intent = new Intent(MainActivity.this, FourActivity.class);

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this).toBundle());

}

});

第五种: (使用ActivityOptions动画共享组件的方式实现跳转Activity动画)

在Acitivity_A中布局文件中定义共享组件

Android:id=”@+id/button5″

Android:layout_width=”match_parent”

Android:layout_height=”wrap_content”

Android:layout_below=”@+id/button4″

Android:layout_marginTop=”10dp”

Android:layout_marginRight=”10dp”

Android:layout_marginLeft=”10dp”

Android:text=”组件过度动画”

Android:background=”@color/colorPrimary”

Android:transitionName=”shareNames”

/>

在Acitivity_B中布局文件中关联共享组件

Android:id=”@+id/activity_second”

Android:layout_width=”match_parent”

Android:layout_height=”match_parent”

Android:gravity=”center_horizontal”

Android:orientation=”vertical”

Android:transitionName=”shareNames”

>

Android:layout_width=”match_parent”

Android:layout_height=”match_parent”

Android:background=”@color/colorAccent”

Android:layout_marginTop=”10dp”

Android:layout_marginBottom=”10dp”

/>

执行跳转逻辑

/**

* 点击按钮,实现Activity的跳转操作

* 通过Android5.0及以上共享组件的方式实现activity的跳转动画

*/

button5.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Intent intent = new Intent(MainActivity.this, FiveActivity.class);

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this, button5, “shareNames”).toBundle());

}

});

总结:

overridePendingTransition方法从Android2.0开始,基本上能够覆盖我们activity跳转动画的需求;

ActivityOptions API是在Android5.0开始的,可以实现一些炫酷的动画效果,更加符合MD风格;

ActivityOptions还可以实现两个Activity组件之间的过度动画; *

关于我

微信公众号:infree6 或者直接扫码

d28da890279b

image

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143289.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ant 编译java(java是干啥的)

    1.什么是antant是构建工具2.什么是构建概念到处可查到,形象来说,你要把代码从某个地方拿来,编译,再拷贝到某个地方去等等操作,当然不仅与此,但是主要用来干这个3.ant的好处跨平台–因为ant是使用java实现的,所以它跨平台使用简单–与ant的兄弟make比起来语法清晰–同样是和make相比功能强大–ant能做的事情很多,可能你用了很久,你仍然不知道它能有多少功能。当你自己开发…

    2022年4月11日
    51
  • 虚拟机usb设备连接不成功_ssh怎么连接虚拟机

    虚拟机usb设备连接不成功_ssh怎么连接虚拟机解决【使用shell连接虚拟机时连接等待时长过长】的问题打开sshd服务的配置文件/etc/ssh/sshd_config把UseDNSyes,改为UseDNSno重启ssh服务打开sshd服务的配置文件/etc/ssh/sshd_config以管理员身份输入下面的命令:vi/etc/ssh/sshd_config把UseDNSyes,改为UseDNSno1、按下键盘的I键,进入编辑模式2、找到UseDNSyes,把注释#去掉,把yes修改为no3、按下键盘的Esc键,并

    2022年9月22日
    2
  • 最简单的SpringBoot整合MyBatis教程

    最简单的SpringBoot整合MyBatis教程前面两篇文章和读者聊了SpringBoot中最简单的数据持久化方案JdbcTemplate,JdbcTemplate虽然简单,但是用的并不多,因为它没有MyBatis方便,在Spring+SpringMVC中整合MyBatis步骤还是有点复杂的,要配置多个Bean,SpringBoot中对此做了进一步的简化,使MyBatis基本上可以做到开箱即用,本文就来看看在SpringBoot中MyBa…

    2022年6月24日
    25
  • 基于H5的移动端APP开发框架

    基于H5的移动端APP开发框架快速增长的APP应用软件市场,以及智能手机的普及,手机应用:Native(原生)APP快速占领了APP市场,成为了APP开发的主流,但其平台的不通用性,开发成本高,多版本开发等问题,一直困扰着专业APP开发企业,和APP服务提供商。安卓和IOS的操作方式,开发模式,界面UI显示方面的差别,也使得原生APP的不同版本体验有很大的区别,光是做兼容性调测,都要花费开发企业不少的时间。近年来,…

    2022年6月16日
    28
  • 龙芯CPU架构_龙芯mips架构

    龙芯CPU架构_龙芯mips架构龙芯架构龙芯指令集:CPU访存指令24个全部来自MIPSCPU算数指令(ALU)10个全部来自MIPSCPU算数指令14个全部来自MIPSCPU乘除指令12个来自MIPS12个来自龙芯(其中8个重复MIPS指令功能)CPU跳转分支指令20个全部来自MIPSCPU位移指令15个全部来自MIPSCPU特殊指令2个全部来自MIPSCPU异常指令12个全…

    2025年9月7日
    15
  • ASP.NET_氚云开发

    ASP.NET_氚云开发氚云平台对接中间件WebService(修订版20200714)1.代码示例C#语言进行编写,运行在.NetFramework4.5环境2.使用VS2015以及以上版本打开.sln解决方案3.第三方WebService结构必须按照氚云规定的格式,方法和参数都不可变动,否则氚云平台无法调用4.所有数据传输均使用标准的Json格式数据5.第三方WebService必须发布至公网,氚云平台才可正常配置地址注意:此示例代码只是演示接口基础调用,没有做安全方面防范措施!!!不可直接使用项目结构:1

    2025年8月12日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号