自定义Activity切换效果

通常,在应用开发过程中,为了美观和炫酷,可以设定每个Activity切换的时候的效果,比如旋转进入,或者是从上面下面,左边右边进入之类的。这里记录一下如何通过overridePendingTransition函数实现切换效果。

实现切换效果主要在两个地方进行处理。一:在startActivity后进行设置一次,Activity启动效果。二:在onBackPressed中进行一次设置,设置Activity返回效果。代码如下:

启动一个Activity:


	Toast.makeText(MainActivity.this, "清除缓存", Toast.LENGTH_SHORT).show();
	Intent intent = new Intent(MainActivity.this, ClearCache.class);
	startActivity(intent);
	overridePendingTransition(<span style="color:#FF0000;">R.anim.translate_vertical_in</span>, <span style="color:#FF0000;">R.anim.translate_vertical_out</span>);
其中R.anim.translate_vertical_in和 R.anim.translate_vertical_out 分别为启动Activity进入的效果和当前Activity退出效果。

R.anim.translate_vertical_in为Activity进入的效果,从下方移动出来,相应R.anim.translate_vertical_out为当前Activity移出效果。

<span style="color:#33CC00;"><?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
        android:fromXDelta="0"
        android:toXDelta="0"
        android:fromYDelta="100%"
        android:toYDelta="0"
        android:duration="500"
        />
</set>

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
        android:fromXDelta="0"
        android:toXDelta="0"
        android:fromYDelta="0"
        android:toYDelta="-100%"
        android:duration="500"
        />
</set></span>
同时,在Activity返回的时候,也应该处理过渡效果。处理onBackPressed消息

@Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
       overridePendingTransition(R.anim.translate_vertical_return_in,  R.anim.translate_vertical_return_out);
    }

其中R.anim.translate_vertical_return_in,  R.anim.translate_vertical_return_out分别是在Activity退出的时候,当前Activity退出的效果和之前Activity进入的效果。

R.anim.translate_vertical_return_in为之前Activity进入的效果,

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate 
        android:fromXDelta="0"
        android:toXDelta="0"
        android:fromYDelta="-100%"
        android:toYDelta="0"
        android:duration="500"
        />
</set>
R.anim.translate_vertical_return_out为当前Activity淡出的效果。

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <translate
        android:fromXDelta="0"
        android:toXDelta="0"
        android:fromYDelta="0"
        android:toYDelta="100%"
        android:duration="500"
        />
</set>
这里的效果都是一种Animation,这里的实现比较简单,只有简单的translate,如果需要复杂的效果,可以在set中添加多个效果,在运行的时候,AnimationSet会将之内的所有的Animation效果进行执行。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值