在1.6之后,也就是从API 5开始,加入了一个overridePendingTransition函数,是用来处理Activity跳转时实现动画效果的。在网上,很多人发帖或者转发,只是很简单的提供了一种写法:
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
overridePendingTransition(R.anim.push_up_in,R.anim.push_up_out);
}
但是这种写法在项目中使用的话,会出现问题,在1.6的测试机器上会出现一个VerifyError的错误,因为overridePendingTransition 会在加载类加载时调用,在1.6的机器上会进行一个预编译,直接这样写就会出现错误。
在国外某论坛搜索了一下,发现了这样一段话:
The VM will attempt to find overridePendingTransition() when the class is loaded, not when that if() statement is executed.
Instead, you should be able to do this:
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
SomeClassDedicatedToThisOperation.overridePendingTransition(this, ...);
}
where the implementation of overridePendingTransition() in SomeClassDedicatedToThisOperation just calls overridePendingTransition() on the supplied Activity.
So long as SomeClassDedicatedToThisOperation is not used anywhere else, its class will not be loaded until you are inside your if() test, and you will not get the VerifyError.
这里已经很明确的给出了解决办法。
处理方式:
public class AnimationModel {
private Activity context;
public AnimationModel(Activity context){
this.context = context;
}
/**
* call overridePendingTransition() on the supplied Activity.
* @param a
* @param b
*/
public void overridePendingTransition(int a, int b){
context.overridePendingTransition(a, b);
}
}
调用方式:
if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONU) {
(new AnimationModel(Profile.this))
.overridePendingTransition(R.anim.push_up_in,
R.anim.push_up_out);
}
这样,你引用跳转动画函数的模型类是生成了,但是里边的函数是不会被调用的。这样就不会被加载到jvm中去。问题也就解决了。
分享到:
相关推荐
Android去掉系统自带的Activity跳转动画 Android系统中,Activity跳转动画是默认启用的,这可以提供良好的用户体验。但是,有时候我们不希望在Activity跳转时有动画效果,例如在实现假的ActionBar时。幸运的是,...
"activity跳转动画效果"是提升用户体验的重要手段之一。 1. **动画类型**:Android提供了两种类型的动画——进入动画(Entrance)和退出动画(Exit),以及共享元素动画(Transition Animation)。进入动画是指...
通过overridePendingTransition方法实现Activity的跳转动画通过定义Application style实现Activity的跳转动画通过ActivityOptions代码实现...共享组件的方式实现Activity的过渡动画更多关于Activity跳转动画的知识...
本文将深入探讨"android activity跳转动画最全集合"中的各种动画效果,并解释如何在实际项目中实现这些过渡效果。 首先,Activity的跳转动画分为进入动画(Enter Animation)和退出动画(Exit Animation)。进入...
本文将深入探讨5.x之前和5.x之后Android系统中Activity跳转动画的设计与实现。 在Android 5.0(API级别21)之前,Activity的跳转动画主要依赖于`android.R.anim`和`android.R.transition`中的预定义动画。开发者...
本篇将深入探讨Android的Activity跳转动画,包括其基本原理、实现方式以及如何自定义动画。 1. 基本原理: Android的Activity跳转动画基于视图动画(View Animation)和属性动画(Property Animation)系统。视图...
本教程将深入探讨Activity跳转动画的终极版,涵盖了多种动画效果,如左进、右进、底部进、顶部进、淡入和缩入,以及如何将这些动画封装到BaseActivity中以实现代码复用。 首先,让我们了解Activity的启动模式。在...
总结起来,"Activity跳转动画大全"是一个关于如何在Android应用中实现多样、流畅、人性化的Activity切换动画的主题。通过学习和实践,开发者不仅可以提升应用的美观度,还能增强用户的使用感受,使应用在众多竞争者...
标题"Activity跳转动画效果实现"所涵盖的知识点主要包括以下几个方面: 1. **Android动画系统**:Android提供两种主要的动画系统,即帧动画(Frame Animation)和属性动画(Property Animation)。属性动画系统是...
在描述中提到了"网上找了一大堆的Android Activity跳转动画,大多都是抄袭,而且都是不完整",这反映了Android开发中一个常见的问题:很多开发者在寻找解决方案时,可能会遇到质量参差不齐的教程和示例。为了确保...
本篇将详细介绍Android 5.0中的Activity跳转动画,特别是共享元素(Shared Element)的动画效果。 一、Activity跳转动画基础 在Android 5.0之前,Activity之间的切换主要依靠`overridePendingTransition()`方法来...
其实Android的Activity跳转可以设置各种动画。下面给大家看看效果: 实现非常简单,用overridePendingtransition(int inId, int outId)即可实现。inId是下一界面进入效果的xml文件的id,outId是当前界面退出效果的xml...
在Android应用开发中,Activity是...通过自定义Activity跳转动画,开发者可以为用户提供更加生动和有趣的交互体验,提升应用的整体质量。在实际项目中,可以根据需求和设计风格自由定制各种动画效果,为应用增色不少。
为了提升用户体验,Android系统允许开发者自定义Activity之间的跳转动画,使应用看起来更加生动和专业。本篇文章将深入探讨如何在Android中实现Activity跳转的几种动画效果。 一、默认动画 在不设置任何自定义动画...
本资源集合包含了多种Activity跳转动画的示例,如"ActivitySenyiCyousa"和"ActivityTransition-master",它们将帮助开发者深入理解和实践Android中的页面过渡动画。 1. **基础动画类型**:Android提供了一些基础的...
对于Activity之间的跳转动画,我们通常使用视图动画,因为它可以简单地应用于启动和退出活动。以下是一个简单的示例: 1. 创建动画资源文件: 在`res/anim`目录下创建两个XML文件,例如`activity_open.xml`(用于...
首先,我们需要了解Android中两种基本的Activity跳转动画类型:进入动画(Enter Animation)和退出动画(Exit Animation)。进入动画是指新Activity如何显示,而退出动画则是指当前Activity如何消失。此外,还有共享...
Activity页面跳转动画,拿来即用!