Activity切换动画

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值