转:http://www.open-open.com/lib/view/open1328364213530.html
早前做完一个应用后期需要加入点效果化。
相对于iPhone上应用的效果,最为经典的界面切换视觉效果就是,放大进入和缩小退出。
还好Android也早以有了这样对应的动画文件。
并且如大家所知的,提供了
overridePendingTransition()这个
最简单实现的方法api.
------------------------
但是如网上所说的:
这里需要特别说明的是,关于overridePendingTransition这个函数,有两点需要主意:
1.它必需紧挨着startActivity()或者finish()函数之后调用
2.它只在android2.0以及以上版本上适用
----------------------------------------
第二点不提了。
提下第一点,该方法必须在以上两个函数之后调用。
简单说就是 A ——> B切换
我们可以在A是startActivity方法后执行。那我A进来的时候呢?
比如A为入口Activity。
当然目前的应用可以很简单的解决这个视觉上的问题,因为一般应用进入都做了log或是过渡的Activity。
问题1也基本算解决了。
但是感觉每次都在start或是finish方法后写下这代码挺麻烦的
于是我试着把overridePendingTransition写在基类的oncreate中。
查看源码打印?
01 /**
02 * @author Nono
03 *
04 */
05 public abstract class BaseActivity extends Activity {
06
07 public TextView titleView;
08
09 @Override
10 protected void onCreate(Bundle savedInstanceState) {
11 requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
12 super.onCreate(savedInstanceState);
13 overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
14
15 }
发现也行的。。猜测这个方法背后发生了什么。
然后蛋疼的去看了下Activity中overridePendingTransition()方法,
然后引出:ActivityManagerNative,ActivityManagerProxy等等各个无语凝噎的名词。
引出ActivityManager框架。FrameWork层次东西了,有兴趣的可以google研究下。
提下切换效果的另一种玩法。
style文件。
上面这个方式看似能很好的解决了切换这个问题。
但是仔细一看却发现,只存在两种状态下,startActivity,开启时和 finish,结束时。
一开始我考虑到activity单例以及不销毁问题。也就是不finish的时候。
悲剧了效果代码没地方写了。
简单举例:比如tabLayout布局式的。一个tabHost容器中有4个Activity,一般来说tag切换时,我们是不调用finish,而只是执行onStop,甚至上次我打
log时发现居然只是onPasue()(这个问题比较诡异了,暂且不理它)。
最后发现activity中Style下的一个android:windowAnimationStyle属性。
查看源码打印?
01 <style name="activty_fade_in_fade_out">
02 <item name="@android:activityOpenEnterAnimation">@anim/fade_in</item>
03
04 <item name="@android:activityOpenExitAnimation">@anim/fade_out</item>
05
06 <item name="@android:activityCloseEnterAnimation">@anim/fade_in</item>
07
08
09 <item name="@android:activityCloseExitAnimation">@anim/fade_out</item>
10 </style>
查看源码打印?
1 <style name="register_activity" parent="XTheme">
2 <item name="@android:windowAnimationStyle">@style/activty_bottom_in_top_out</item>
3 </style>
查看源码打印?
1 <activity android:name=".activity.LoginActivity" android:screenOrientation="portrait"
2 android:theme="@style/In_Out_theme"/>
以上只是style中item可以有更多选择,就刚好解决了上面提到的问题。
参数更多查看文档
http://developer.android.com/reference/android/R.styleable.html#WindowAnimation
顺带提下界面中View的效果,同样的可以自定义动画。
以及在布局文件中的
android:layoutAnimation中定义动画效果。
分享到:
相关推荐
本篇将深入探讨如何利用第三方库来实现丰富的Android Activity切换效果,特别推荐的是名为"android-viewflow"的库。 "android-viewflow"是一个强大的库,它为Android应用提供了流畅且可扩展的activity切换解决方案...
总的来说,"activity切换效果集合"涵盖了Android中实现Activity动画的多种方法和技术,开发者可以根据应用的需求和用户的喜好,选择合适的方式增强应用的视觉表现力和交互体验。通过深入理解并实践这些知识点,...
本教程将详细介绍如何在Android中实现Activity切换的特效。 1. **理解Activity切换**: - Activity的切换是由`Intent`对象触发的,它用来指定用户要跳转的目标Activity。 - 默认情况下,Activity切换是平滑的,但...
然而,传统的Activity切换方式是通过Intent启动新的Activity并覆盖当前Activity,这种方式并不具备滑动动画效果。 要实现滑动切换,我们可以借助Android的Fragment或者自定义的Activity过渡动画。Fragment是Android...
本文将深入探讨多种Activity切换动画的实现方法,并介绍如何将其封装为基类以便于在项目中复用。 一、自定义动画 1. 使用Transition动画:Android提供了Transition框架,允许开发者创建和控制视图之间的过渡动画。...
本篇将深入探讨Android中Activity切换动画的实现与应用。 首先,Android提供两种类型的动画:视图动画(View Animation)和属性动画(Property Animation)。视图动画主要用于改变对象的视觉外观,但不实际改变对象...
本教程将深入探讨如何在Android中实现Activity切换动画效果。 首先,我们需要了解Activity切换动画的两种基本类型:进入(Enter)动画和退出(Exit)动画。进入动画是指当新的Activity显示时发生的动画,而退出动画...
总结来说,Activity切换动画是Android开发中的一个重要方面,它能够增强应用的视觉表现力和用户体验。通过理解和熟练运用Android提供的动画机制,开发者可以创建出各种个性化的动画效果,同时解决特定场景下的动画...
以下是几种常见的Activity切换效果: 1. **默认效果**:普通的淡入淡出效果,这是最基础的切换方式,适用于大多数场景。 2. **共享元素过渡**:在两个Activity之间共享一个或多个UI元素,比如图片或标题,它们在...
在Android开发中,"左右滑动切换Activity"是一种常见的用户界面设计,它为用户提供了一种流畅、直观的导航方式,增强了应用的用户体验。通常,这种功能是通过实现一个连续的Activity栈或者使用Fragment来实现的。...
本文将深入探讨如何在Android中实现Activity切换动画,包括从左边、右边、上边和下边进入的动画效果。 首先,Android提供了两种类型的动画:视图动画(View Animation)和属性动画(Property Animation)。视图动画...
"activity切换翻转效果"就是一个常见的增强视觉体验的手段,它通过3D翻转动画使得Activity间的过渡更为生动和有趣。本文将详细介绍如何在Android中实现这一效果。 首先,我们要了解Android中的动画系统。Android...
总结,手势识别增强了用户与应用的交互性,而Activity切换动画则提升了应用的视觉吸引力和整体体验。理解并熟练运用这些技术,可以使你的Android应用更具吸引力和竞争力。在实际开发中,应根据应用需求选择合适的...
"Android之界面切换并且图标显示状态效果实现"这个主题主要涉及到以下几个关键知识点: 1. **ViewPager**: 实现界面左右滑动切换的主要组件是`ViewPager`,它允许用户通过水平滑动查看多个页面。`ViewPager`与`...
这个"Android高级应用源码-各种Activity切换效果.zip"文件显然包含了关于如何实现不同Activity间过渡动画和效果的示例代码。以下是一些可能涵盖的知识点: 1. **Activity的生命周期**:Activity具有启动(onCreate...
当我们从一个Activity切换到另一个Activity时,Android系统会按照特定的生命周期回调函数调用来管理这些活动。本研究主要探讨了在不同Activity之间切换时,它们的回调函数调用逻辑。 首先,我们从一个Activity启动...
3. **滑动关闭**:通过实现滑动手势,可以让用户通过在屏幕边缘向下滑动来关闭Activity,这种效果通常在对话框或者半透明Activity中使用,增强了交互性。 4. **转场动画**:Android提供了Transition API,用于在两...
例如,使用ObjectAnimator实现一个淡入淡出的Activity切换: ```java ObjectAnimator fadeIn = ObjectAnimator.ofFloat(targetView, "alpha", 0f, 1f); fadeIn.setDuration(500); ObjectAnimator fadeOut = ...
本示例主要讲解如何在Activity切换时使用补间动画,以提升用户体验并增强应用的视觉吸引力。 补间动画在Android中属于视图动画(View Animation)的一部分,通过改变对象的透明度、大小、位置或旋转等属性来创建...
总的来说,"Android Activity切换动画 时间日期选择器.rar"涵盖了Android开发中的关键知识点,包括动画效果的实现和日期时间选择器的使用。开发者可以通过研究这个资源包,提升自己的技能,并将这些技巧应用于自己的...