通过style实现Activity的界面切换

Android Activity界面切换动画 最近做项目,发现Activity界面切换跳转时,切换动画不一致,有的左进右退,有的右进左退,有的左进左退,有的右进右退,视觉交互效果不是很好,通过查资料,采用以下方法可以解决。 主要是通过AppTheme,直接在主题中修改activity动画样式,具体如下: 1.定义包含动画的Activity主题 <!-- Base application theme. --> &lt... 阅读详情

Activity的界面切换可以通过调用系统的方法,overridePendingTransition(int enterAnim, int exitAnim)来实现。

假设界面A点击后可以进入界面B,点击back键后,B界面关闭,返回到A界面。

通过xml文件可以实现动画效果,然后调用overridePendingTransition即可,第一个参数代表即将能看到的界面,第二个参数代表即将看不到得界面。这里,举例使用最常用的方式,界面自然左右滑动切换。

a:从A进入B(A消失,B出现)(文件名:可以理解为A的open动作,A消失,和B出现的动画)

activity_open_exit.xml

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


activity_open_enter.xml

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

b:B界面按back键,回到A界面的过程

activity_close_enter.xml

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

activity_close_exit.xml

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

<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="0" android:toXDelta="100%p"
		android:duration="500" />
	<alpha android:fromAlpha="1.0" android:toAlpha="1.0"
		android:duration="500" />
</set>

这样,overridePendingTransition(R.anim.activity_open_enter, R.anim.activity_anim_exit);overridePendingTransition(R.anim.activity_close_enter, R.anim.activity_close_exit);即可实现界面的切换,但是这是通过代码,每次打开一个activity都需要这样来写。我们可以通过在AndroidManifest中的activity节点中的theme来配置当前Activity打开和退出的动画效果。

这里,首先介绍一下在Android中的theme和style的区别:

风格Style是一个包含一种或多种格式化属性的集合,你可以把它应用在UI组件上。主题Theme也是一个包含一种或多种格式化属性的集合,你可以把它应用在整个应用程序(Application)中或者某个窗口(Activity)中。比如,布局文件中的TextView和Button等,我们都可以在styles.xml中找到一些属性的配置,而在themes.xml中,可以看到有这样的属性配置<item name="android:buttonStyle">@style/xxxx</item>,这表示使用了这个Theme的界面上的button会默认使用这样的style,不会使用系统默认的了。

在styles.xml中,我们可以看到这样的style,并且其中有这样的item。

<style name="Animation.Activity">
    <item name="activityOpenEnterAnimation">@anim/activity_open_enter</item>
    <item name="activityOpenExitAnimation">@anim/activity_open_exit</item>
    <item name="activityCloseEnterAnimation">@anim/activity_close_enter</item>
    <item name="activityCloseExitAnimation">@anim/activity_close_exit</item>
<!—忽略其他-->
</style>
那么,我们只要继承这个style,然后换成我们的动画效果就可以了,在activity的节点配置中,使用我们的style就可以了,但是,这里也可以使用继承themes.xml中的主题来实现,因为,主题中为我们提供了界面切换的style,<item name="android:windowAnimationStyle">@style/自己的style</item>。

通过上述方式,就实现了界面的切换,并且不用每次打开界面都调用overridePendingTransition方法,但是,如果在同一个界面中又不同的切换效果呢,那么就需要使用overridePendingTransition了。

提示:如果activity节点和overridePendingTransition都写了,App会使用代码中,就比如布局中写了,代码中也写了,会使用代码中的配置。

demo:

<style name="My.Animation.Activity" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/push_left_in</item>
        <item name="android:activityOpenExitAnimation">@anim/push_left_out</item>
        <item name="android:activityCloseEnterAnimation">@anim/push_right_in</item>
        <item name="android:activityCloseExitAnimation">@anim/push_right_out</item>
</style>
style name="AppTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <item name="android:windowAnimationStyle">@style/My.Animation.Activity</item>。
</style>






UI进阶——Style的详细介绍 楔子在android UI的开发中,合理的利用style资源是必不可少的一件事。但是个人翻阅很多文章,很少有详细的描述style的原理及其具体的使用。所以决定写一篇详细描述style的文章。style的简单描述style的作用当创建App之后,我想大家肯定都有这样的疑惑,为什么刚创建的Activity的背景是白色的,使用TextView显示出的字的颜色都是黑色的?这种一开始就默认的属性是由什么控制的 阅读详情

相关推荐

Android自定义Activity切换动画的Theme应用

在Android开发中,动画资源文件是实现界面元素动效的核心组件,通过它们可以轻松创建出平滑、吸引用户注意力的动画效果。理解动画资源文件的类型、用途以及它们在文件系统中的组织形式是构建复杂动效的基础。补间动画是通过XML文件定义的,其中包含了动画的详细信息。例如,创建一个淡入淡出的动画:在上述代码中,fromAlpha和toAlpha属性定义了动画的起始和结束透明度,duration属性定义了动画持续的时间,单位是毫秒。

weixin_36431145的博客 1055

【Android】Activity之间的切换效果定义

在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果。 在无特殊声明的情况下,以下部分提及的入场动画是指startActivity的效果。出场动画是指finish的效果。 做Activity的页面切换,我所了解到的共有两种方法:一、使用style定义页面切换动画,大致方法如下:1、在style.xml中添加如下定义 <resource

创艺未来 947

Android设置Activity背景为透明style的简单方法(必看)

下面小编就为大家带来一篇Android设置Activity背景为透明style的简单方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

Framework的anim下各xml简介

默默珍藏:http://bbs.gfan.com/android-6886761-1-1.html 当我们每次用别人的动画时会发现有时候只是喜欢其中的某几个界面的切换效果或是对其中的某个切换效果不满意,毕竟每个人的要求不同,于是我们就希望自己能修改出一个满意的效果,看了本文的介绍你就会发现其实修改动画并没有想象中的那么难,好了,下面是各个界面切换效果所对应的XML。 wallpaper_c

z469571695的专栏 1213

MUSIC算法翻车?Toeplitz矩阵重构如何解决DOA估计中的相干信源难题

本文深入探讨了MUSIC算法在相干信源DOA估计中失效的根本原因,并详细介绍了基于Toeplitz矩阵重构的协方差矩阵修复技术。该方法通过凸优化恢复协方差矩阵的理想结构,有效解决了信号子空间秩亏损问题,从而显著提升了MUSIC算法在相干和多径场景下的分辨精度与稳健性。

a2b3c4d5e的博客 250

ARM架构下Horizon Client安装全攻略:从依赖检查到环境变量配置

本文详细介绍了在ARM架构设备上安装VMware Horizon Client的全过程,包括依赖检查、软件包获取、系统部署和环境变量配置。特别针对华为鲲鹏等ARM平台,提供了从基础准备到性能优化的完整指南,帮助用户高效完成虚拟桌面客户端的部署与调优。

github5actions的博客 553

对Activity 切换过渡动画的理解

对Activity 切换过渡动画的理解 以自定义主题实现的切换过渡动画为例 网上有很多讲Activity的切换过渡动画的,按我一惯的原则是不会重复造轮子,但是深入的看了看网上的大部分文章,都讲得云里雾里 ,让人不明所以,会误导很多人。 自定义的动画主题,一般都是4个属性,activityOpenEnterAnimation,activityOpenExitAnimation,activityClo...

shenglong0210的博客 758

S32K144(1)新建裸机项目以及烧录调试工程

目录 1、简介 2、S32DS新建裸机项目 2.1、新建空的项目 2.2、选择标准库的S32DS 2.3、选择使用EWL官方库 2.4、新建成功 3、烧录工程 3.1、点击Debug,选择Debug Configurations 3.2、新建GDB SEGGER J-Link Debugging 3.3、确认Project和C/C++ Applicants是需要烧写的项目名和路径正确 3.4、确认Executable Device name Interface等各个配置信息正确,后点击

朗朗上口就行啦的博客 4975

activity界面跳转、关闭之间的过度动画

主要可以通过俩种方式: 一种是通过在代码中进行动画的设置,这种情况适合于个别activity的界面跳转、关闭; 一种是通过在应用程序的主题中进行相关的设置,进行界面的跳转、关闭,这种情况适合于设置多个activity的界面跳转、关闭。 首先,设置四个动画效果:分别是打开一个新的activity时候的进入、退出动画,以及当前activity关闭时的进入和退出动画。 例如:当打开一个新的act...

Jermmy1207的博客 797

复合材料热压罐固化残余应力仿真与优化

复合材料在热压罐固化过程中产生的残余应力是影响构件性能的关键因素,尤其在航空航天和风电叶片等高端制造领域。通过多物理场耦合仿真技术,可以精确预测残余应力分布,优化工艺参数。顺序耦合方法分步求解热分析和结构分析,既保证了计算精度,又控制了成本。Abaqus等有限元工具在此过程中发挥重要作用,通过合理设置边界条件、材料属性和接触关系,能够有效模拟温度场和应力场的相互作用。工程实践中,这种仿真方法已成功应用于无人机机翼、卫星支架等实际项目,显著降低了固化变形和微裂纹风险。

weixin_33146151的博客 216

OpenCV快速入门:绘制图形、图像金字塔和感兴趣区域

OpenCV是一个强大的计算机视觉库,广泛应用于图像处理、计算机视觉和机器学习等领域。本文将介绍OpenCV中的一些基础功能,包括如何绘制图形、创建图像金字塔以及如何处理感兴趣区域(ROI)。

吾家有猫名探花的博客 1962

Android 应用的退场和入场动画分析

Android应用的打开和关闭动画分析

raolulu的博客 1190

10、犹豫双模糊TOPSIS算法:原理与实例解析

本文介绍了犹豫双模糊TOPSIS算法的基本原理与应用步骤,结合中国四家纺织公司的案例,详细解析了从构建犹豫双模糊决策矩阵、归一化处理、专家信息聚合,到确定正负理想解、计算距离与相对贴近度系数的完整决策流程。该方法有效应对决策者在评价过程中的犹豫性,适用于财务评估、项目选择等复杂多属性决策场景,具有较强的实用性和推广价值。

yhn45678901的博客 122

Android Theme和Style切换UI

P { margin-bottom: 0.21cm; }A:link { }android换肤的方法非常多,如果不需要做成开放接口,只是自己的软件单纯支持换肤,或者在framework层做开发,需要根据系统设置修改app的皮肤,那么就可以使用theme来实现。其优势是维护和扩展方面,实现起来也很方便,只要使用xml文件提前定义好需要的皮肤,在项目中加入少量代码就可以实现。1.添加变量,xml的变

懒人日志 3975

SCADA|KIO程序导出变量错误处理办法

雷工在使用KingSCADA3.52软件导出KIO变量时,遇到导出Excel格式文件报错的问题,错误提示为“ADODB.Connection未找到提供程序”。经过咨询技术人员,发现该功能需要安装Office软件,并与已安装的WPS软件兼容。雷工随后安装了Office2021版本,并进行了兼容性设置。安装过程中遇到无法启动的问题,通过删除安装目录、清理注册表、使用卸载软件和重启电脑等方法解决。安装完成后,雷工在WPS中设置了与Microsoft Office2003兼容的模式,最终成功解决了导出变量时的问题。

做有价值的事,积累有价值的笔记! 957

MIPI C-PHY介绍(Specification for C-PHY V1.2)

本文档描述了一个名为C-PHY的高速串行接口,它在带宽有限(bandwidth limited channels,看的有人说C的含义就是channel limit)的通道上提供高吞吐量性能,用于连接到外设,包括显示器和摄像头。首先0x4fff在0x4000~0x4fff区域,则f=(0,0,0,0,0,0,1),顺序是S6~S1;最后,端到端的传输过程是什么样呢,如下图所示,16bit先转换成7个符号(每个符号3位,共21位),然后并行数据转换成串行数据,输送到符号编码器和3个线的驱动器,接收端流程相反。

qflook的博客 5877

Android关于Activity切换效果的实现加强

早前做完一个应用后期需要加入点效果化。   相对于iPhone上应用的效果,最为经典的界面切换视觉效果就是,放大进入和缩小退出。   还好Android也早以有了这样对应的动画文件。   并且如大家所知的,提供了   overridePendingTransition()这个   最简单实现的方法api.   ------------------------   但是如

Dream It Possible 1340

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Android-Animation-Set项目解析:深入理解Activity切换动画的实现方式

在Android应用开发中,良好的用户体验离不开流畅自然的界面过渡效果。本文将基于Android-Animation-Set项目,全面解析Activity切换动画的实现方式,帮助开发者掌握各种动画效果的实现技巧。 ## Activity切换动画基础概念 Activity切换动画本质上包含两个部分: 1. 当前Activity的退出动画 2. 新Activity的进入动画 理解这一点对于实现流...

gitblog_00170的博客 435

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

安卓变脸(主题实现)

安卓变脸(主题实现) 新建一个继承Activity类的AndroidThemeActivity,并设置布局文件为:androidtheme.xml。 由于设置的主题要在显示布局文件之前进行操作,所以这里直接在代码中设置,布局文件随便添加几个常见的组件即可。 Spinner         android:id="@+id/androidtheme_spinner01"  

lyx_xiaofeng的博客 689

Android主题更换简单实践

前言  很多优秀的APP都支持多种主题,最常见的是白天和夜间模式。因此本篇博客是作者实践更换主题的记录,写出来与大家分享。   实现更换主图这一功能有很多种方式,最简单的方式,就是定义多套主题。至于style文件当中,也适合新手学习与实践(大神勿喷)。言归正传,进入主题。定义需要在各种主题下切换的属性  这部分内容放在values下的attrs.xml文件中,这里我简单定义了几个如下:<resou

不悔的青春 2433

Android高级应用开发(深入篇) stage3(上)- 高级商用界面开发 学习笔记

一、风格与主题 Style和Theme的区别 1、Theme是针对窗体级别的,改变窗体样式 2、Style是针对窗体元素级别的,改变指定控件或Layout样式 使用Style

程序猿的专栏 2313

通过style自定义Activity切换动画在华为上失效问题

描述 昨天尝试了一下采用style的方式定义Activity之间切换动画,大致步骤如下: 新建一个AnimationActivity的style,继承自Android:style/Animation.Activity。设置四个item。 <style name="AnimationActivity" parent="@android:style/Animation.Activity"&g...

weixin_34288121的博客 1127

安卓统一添加activity切换动画

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

GcsSloop 3222

Activity的切换效果

Activity有默认的切换效果,但是这个效果我们是可以自定义的,主要用到overridePendingTransition(int enterAnim,int exitAnim)这个方法,这个方法必须在startActivity(Intent)或者finish()之后被调用才能生效 第一种方式,通过代码加载xml动画 fun onCreate(savedInstanceState: Bund...

Lud的博客 266

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

分享一下Activity切换时实现动画效果的几种方式          首先  切换Activity可以通过两种方式,    1 调用 startActivity(),进入新的Activity     2 在当前的Activity 调用 finish() 结束当前的界面,回到上一个界面  (一) 调用 overridePendingTransition()方法实现 Act

丶一叶扁舟的博客 750

Android Activity切换动画常用实现方式

一. overridePendingTransition(): 此方式只需要在启动另一个activity和退出activity的时候调用就行,这个方法接收两个参数,一个是新启动的activity进入时的动画,另一个是当前activity消失时的动画。 启动: startActivity(newIntent(MainActivity.this,TestActivityWithTheme.cl...

zhizhuodewo6的博客 3473
下一篇: View,Activity,Window三者的关系
arplay
博客等级 码龄12年 0粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值