Activity切换动画

来源:互联网 发布:centos 7网络配置 编辑:程序博客网 时间:2024/05/21 02:39

1.左进右出效果

这里写图片描述

overridePendingTransition(R.anim.left_enteranim,R.anim.left_exitanim);

left_enteranim.xml

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

left_exitanim.xml

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

2 . 左进右出另外一种效果
这里写图片描述
overridePendingTransition(R.anim.left_enteranim,R.anim.right_exitanim);

left_enteranim.xml

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

right_exitanim.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <alpha        android:duration="300"        android:fromAlpha="1.0"        android:toAlpha="0.5" />    <scale        android:duration="300"        android:fromXScale="1.0"        android:fromYScale="1.0"        android:pivotX="50.0%"        android:pivotY="50.0%"        android:toXScale="0.9"        android:toYScale="0.9" /></set>

3 上进下出效果

这里写图片描述
A activity

    Intent intent1=new Intent(this,TestDemo2.class);    startActivity(intent1);  //enterAnim  从 100%->0  ,exitAnim  0->-100%   都是向上动画            overridePendingTransition(R.anim.top_enteranim,R.anim.bottom_exitanim);

B activity

  @Override    public void finish() {        super.finish();        //down_exitanim  向下动画,0->100% ,top_enteranim  100%->0        overridePendingTransition(R.anim.motivated,R.anim.down_exitanim);    }

top_enteranim.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translate    android:fromYDelta="100%"    android:toYDelta="0"    android:duration="1000"></translate></set>

bottom_exitanim.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:fromYDelta="0"        android:toYDelta="-100%"        android:duration="1000">    </translate></set>

motivated.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <translate        android:fromYDelta="-100%"        android:toYDelta="0"        android:duration="1000">    </translate></set>

down_exitanim.xml

<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"    android:duration="1000">    <translate        android:duration="1000"        android:fromYDelta="0"        android:toYDelta="100%" /></set>

4 点击搜索框淡入淡出效果
这里写图片描述

  Intent  intent=new Intent(HomePageActivity.this,SearchActivity.class);     v.getContext().startActivity(intent);   //                实现淡入淡出的效果1             overridePendingTransition(android.R.anim.fade_in,android.R.anim.fade_out);

遇到的一些问题:

  overridePendingTransition(int enterAnim, int exitAnim);

exitAnim 离开动画不可以设置为0 ,否则会在切换过程中有短暂的黑屏;
enterAnim 可以为 0,不影响;
如果设置动画 是交叉移动那么就会有黑屏闪过,最好的是动画同方向移出,或者移动。

这里写图片描述

overridePendingTransition() 这个方法只能发在startActivity()之后或者是
finish()之后执行。

参考:
http://blog.csdn.net/ss1168805219/article/details/53445063