安卓活动之间的自定义转场效果

3
我正在开发一个Android应用程序,并希望能够实现自定义的活动转换效果。当我在第一个活动中按下按钮时,我希望它能缩小并移动到屏幕的某个角落直到消失,然后调用第二个活动。当然,在第一个活动缩小和移动的过程中,第二个活动将开始显示本身(我的意思是,在此期间,我不想在底部看到黑屏)。有没有人有这方面的经验?我还想指出,我正在为API 3.0+构建我的应用程序,因此可以使用更新的功能和方法。谢谢!
1个回答

14

你可以使用简单的比例动画实现这个效果。在第二个活动中,你可以这样做:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    overridePendingTransition(R.anim.scale_from_corner, R.anim.scale_to_corner);
}

对于动画,它将是:

scale_to_corner.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromYScale="1.0" android:toYScale="0"
        android:fromXScale="1.0" android:toXScale="0" 
        android:duration="500"/>
</set>

和 scale_from_corner.xml

<set xmlns:android="http://schemas.android.com/apk/res/android">
    <scale android:fromYScale="0" android:toYScale="1.0"
        android:fromXScale="0" android:toXScale="1.0" 
        android:duration="500" android:pivotX="100%"
        android:pivotY="100%" />
</set>

这将使您的第一个活动从左上角缩小,而您的第二个活动从右下角增长。如果您想更改它们增长或缩小的点,只需更改pivotX和pivotY即可。


我会试一下。谢谢!只有一个问题:我只在第二个活动中覆盖待定的转换。可能是因为这是要进入视图的活动,对吧? - Sandra
没错。当将新的活动添加到堆栈或从顶部删除一个活动时,最上面的活动将控制动画。对于所有活动,您都可以在onCreate中重写进入转换,并在finish中重写退出转换。 - Michael Celey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接