安卓 自定义activity(活动)切换效果

本文介绍了如何在Android中自定义Activity的切换效果,通过调整X轴和Y轴的坐标变化,实现左右和上下切换动画。提供了left_show.xml、left_hide.xml、right_show.xml和right_hide.xml四个动画资源文件,并指出在切换Fragment时,可利用FragmentTransaction的setCustomAnimations方法配合hide、add、remove或replace操作实现动画效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上图表示了对于一个Activity它在不同位置所对应的坐标。

从左往右,X轴的变化为-100% --- 0% --- 100%

从右往左,X轴变化为 100% ---0% --- -100%

当然也可以通过修改Y轴的值来实现上下切换,变化的比例也可不一定是100%,根据实际效果而定。

1.从左边切入和切出

left_show.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" >

    <translate
        android:duration="300"
        android:fromXDelta="-100%"
        android:fromYDelta="0%"
        android:toXDelta="0%"
        android:toYDelta="0%" />

</set>

left_hide.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" >

    <translate
        android:duration="300"
        android:fromXDelta="0%"
        android:fromYDelta="0%"
        android:toXDelta="100%"
        android:toYDelta="0%" />

</set>

2.从右边切入和切出

right_show.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" >

    <translate
        android:duration="300"
        android:fromXDelta="100%"
        android:fromYDelta="0%"
        android:toXDelta="0%"
        android:toYDelta="0%" />

</set>

right_hide.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_decelerate_interpolator" >

    <translate
        android:duration="300"
        android:fromXDelta="0"
        android:fromYDelta="0%"
        android:toXDelta="-100%"
        android:toYDelta="0%" />

</set>
切换至activity需使用overridePendingTransition(R.anim.right_show,R.anim.right_hide),但是需要在startActivity或者startActivityFromFragment以及finish之后使用。

切换至fragment需使用FragmentTransaction的setCustomAnimations(R.anim.right_show,R.anim.right_hide),可以结合hide,add,remove,replace使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值