• Android中的动画具体解释系列【4】——Activity之间切换动画


    前面介绍了Android中的逐帧动画和补间动画,并实现了简单的自己定义动画,这一篇我们来看看怎样将Android中的动画运用到实际开发中的一个场景——Activity之间跳转动画。

    一、定义动画资源

    假设对Android中的动画不了解,请先阅读《Android中的动画具体解释系列【1】——逐帧动画》《Android中的动画具体解释系列【2】——飞舞的蝴蝶》《Android中的动画具体解释系列【3】——自己定义动画研究》。

    进入动画(要启动的Activity)

    <?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="200" /> </set>

    退出动画(要退出的Activity)
    <?

    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="200" /> </set>

    对上面代码的解释:

    当前Activity退出的时候从上图手机屏幕退出到-100%p的位置,要启动的Activity进入的时候从上图手机100%p的位置进入到0的位置,0的位置就是手机屏幕可见部分。

    二、加入到Activity

    1、使用overridePendingTransition方法

    			intent = new Intent(RegistActivity.this, RegistChooseListActivity.class);
    			intent.putExtra("type", Constant.REGIST_CHOOSE_XIAOQU);
    			startActivityForResult(intent, Constant.REGIST_CHOOSE_XIAOQU);
    			overridePendingTransition(R.anim.push_left_in,
    					R.anim.push_left_out);
    2、在Theme中加入
    <style name="AnimFade" parent="@android:style/Animation.Activity">    
        <item name="android:activityOpenEnterAnimation">@anim/fade_in</item>    
        <item name="android:activityOpenExitAnimation">@anim/hold</item>          
        <item name="android:activityCloseEnterAnimation">@anim/fade_in</item>    
        <item name="android:activityCloseExitAnimation">@anim/fade_out</item>   
    </style>  
      
    <style name="Anim_style" parent="android:Theme.NoTitleBar">           
        <item name="android:windowAnimationStyle">@style/AnimFade</item>         
    </style>  
    具体请看:http://blog.csdn.net/dawanganban/article/details/19925449

    三、执行效果

    (切换速度太快,延迟问题。以下展示效果和真实效果不符。參考一下,自己试一下)

    四、其它切换动画

    1、淡入淡出效果

    <alpha xmlns:android="http://schemas.android.com/apk/res/android"
           android:interpolator="@android:anim/accelerate_interpolator"
           android:fromAlpha="0.0" android:toAlpha="1.0"
           android:duration="2000" />
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
           android:interpolator="@android:anim/accelerate_interpolator"
           android:fromXDelta="0" android:toXDelta="0"
           android:duration="2000" />
    2、从下往上推效果
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    	<translate android:fromYDelta="100%p" android:toYDelta="0" android:duration="2000"/>
    	<alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="2000" />
    </set>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
    	<translate android:fromYDelta="0" android:toYDelta="-100%p" android:duration="2000"/>
    	<alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="2000" />
    </set>
    3、上下交错效果
    <?xml version="1.0" encoding="UTF-8"?>
    <set android:interpolator="@android:anim/decelerate_interpolator"
    	xmlns:android="http://schemas.android.com/apk/res/android">
    	<translate android:duration="2000"
    		android:fromYDelta="100.0%p" android:toYDelta="0.0" />
    </set>
    <?xml version="1.0" encoding="UTF-8"?>
    <set android:interpolator="@android:anim/accelerate_interpolator"
    	xmlns:android="http://schemas.android.com/apk/res/android">
    	<translate android:duration="2000"
    		android:fromYDelta="0.0" android:toYDelta="100.0%p" />
    </set>







  • 相关阅读:
    Mysql 批量插入数据的方法
    sql server 多行合并一行
    跨服务器多库多表查询
    OPENQUERY用法以及使用需要注意的地方
    C# 判断操作系统的位数
    rpc介绍
    JavaScript decodeURI()与decodeURIComponent() 使用与区别
    UNIX 时间戳 C#
    C# winform javascript 互调用
    oracle 实例名和服务名以及数据库名区别
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7389009.html
Copyright © 2020-2023  润新知