`
perfy315
  • 浏览: 414927 次
社区版块
存档分类
最新评论

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

阅读更多
转: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 Activity切换效果,特别推荐的是名为"android-viewflow"的库。 "android-viewflow"是一个强大的库,它为Android应用提供了流畅且可扩展的activity切换解决方案...

    activity切换效果集合

    总的来说,"activity切换效果集合"涵盖了Android中实现Activity动画的多种方法和技术,开发者可以根据应用的需求和用户的喜好,选择合适的方式增强应用的视觉表现力和交互体验。通过深入理解并实践这些知识点,...

    Android实现activity切换特效_动画效果.zip

    本教程将详细介绍如何在Android中实现Activity切换的特效。 1. **理解Activity切换**: - Activity的切换是由`Intent`对象触发的,它用来指定用户要跳转的目标Activity。 - 默认情况下,Activity切换是平滑的,但...

    android点击按钮实现多个Activity滑动切换

    然而,传统的Activity切换方式是通过Intent启动新的Activity并覆盖当前Activity,这种方式并不具备滑动动画效果。 要实现滑动切换,我们可以借助Android的Fragment或者自定义的Activity过渡动画。Fragment是Android...

    android Activity切换动画多种方式

    本文将深入探讨多种Activity切换动画的实现方法,并介绍如何将其封装为基类以便于在项目中复用。 一、自定义动画 1. 使用Transition动画:Android提供了Transition框架,允许开发者创建和控制视图之间的过渡动画。...

    android里activity切换动画集合

    本篇将深入探讨Android中Activity切换动画的实现与应用。 首先,Android提供两种类型的动画:视图动画(View Animation)和属性动画(Property Animation)。视图动画主要用于改变对象的视觉外观,但不实际改变对象...

    Android Activity切换动画效果

    本教程将深入探讨如何在Android中实现Activity切换动画效果。 首先,我们需要了解Activity切换动画的两种基本类型:进入(Enter)动画和退出(Exit)动画。进入动画是指当新的Activity显示时发生的动画,而退出动画...

    Activity切换动画

    总结来说,Activity切换动画是Android开发中的一个重要方面,它能够增强应用的视觉表现力和用户体验。通过理解和熟练运用Android提供的动画机制,开发者可以创建出各种个性化的动画效果,同时解决特定场景下的动画...

    android 界面切换效果

    以下是几种常见的Activity切换效果: 1. **默认效果**:普通的淡入淡出效果,这是最基础的切换方式,适用于大多数场景。 2. **共享元素过渡**:在两个Activity之间共享一个或多个UI元素,比如图片或标题,它们在...

    android左右滑动切换activity

    在Android开发中,"左右滑动切换Activity"是一种常见的用户界面设计,它为用户提供了一种流畅、直观的导航方式,增强了应用的用户体验。通常,这种功能是通过实现一个连续的Activity栈或者使用Fragment来实现的。...

    android中activity切换动画

    本文将深入探讨如何在Android中实现Activity切换动画,包括从左边、右边、上边和下边进入的动画效果。 首先,Android提供了两种类型的动画:视图动画(View Animation)和属性动画(Property Animation)。视图动画...

    activity切换翻转效果

    "activity切换翻转效果"就是一个常见的增强视觉体验的手段,它通过3D翻转动画使得Activity间的过渡更为生动和有趣。本文将详细介绍如何在Android中实现这一效果。 首先,我们要了解Android中的动画系统。Android...

    android手势及activity切换动画效果

    总结,手势识别增强了用户与应用的交互性,而Activity切换动画则提升了应用的视觉吸引力和整体体验。理解并熟练运用这些技术,可以使你的Android应用更具吸引力和竞争力。在实际开发中,应根据应用需求选择合适的...

    Android之界面切换并且图标显示状态效果实现

    "Android之界面切换并且图标显示状态效果实现"这个主题主要涉及到以下几个关键知识点: 1. **ViewPager**: 实现界面左右滑动切换的主要组件是`ViewPager`,它允许用户通过水平滑动查看多个页面。`ViewPager`与`...

    Android高级应用源码-各种Activity切换效果.zip

    这个"Android高级应用源码-各种Activity切换效果.zip"文件显然包含了关于如何实现不同Activity间过渡动画和效果的示例代码。以下是一些可能涵盖的知识点: 1. **Activity的生命周期**:Activity具有启动(onCreate...

    android 不同activity切换时它们的回调函数调用逻辑的研究

    当我们从一个Activity切换到另一个Activity时,Android系统会按照特定的生命周期回调函数调用来管理这些活动。本研究主要探讨了在不同Activity之间切换时,它们的回调函数调用逻辑。 首先,我们从一个Activity启动...

    android activity的一些特效

    3. **滑动关闭**:通过实现滑动手势,可以让用户通过在屏幕边缘向下滑动来关闭Activity,这种效果通常在对话框或者半透明Activity中使用,增强了交互性。 4. **转场动画**:Android提供了Transition API,用于在两...

    Android的Activity跳转动画

    例如,使用ObjectAnimator实现一个淡入淡出的Activity切换: ```java ObjectAnimator fadeIn = ObjectAnimator.ofFloat(targetView, "alpha", 0f, 1f); fadeIn.setDuration(500); ObjectAnimator fadeOut = ...

    Android中补间动画在activity切换时使用

    本示例主要讲解如何在Activity切换时使用补间动画,以提升用户体验并增强应用的视觉吸引力。 补间动画在Android中属于视图动画(View Animation)的一部分,通过改变对象的透明度、大小、位置或旋转等属性来创建...

    Android Activity切换动画 时间日期选择器.rar

    总的来说,"Android Activity切换动画 时间日期选择器.rar"涵盖了Android开发中的关键知识点,包括动画效果的实现和日期时间选择器的使用。开发者可以通过研究这个资源包,提升自己的技能,并将这些技巧应用于自己的...

Global site tag (gtag.js) - Google Analytics