0

我正在开发一个应用程序,我想要一个活动的自定义动画。更具体地说,我有一个片段和一个活动。当用户单击ListView片段中的项目时,用户将被导航到一个新活动,该活动应该来自底部而不是默认动画(我认为淡入)。我用谷歌搜索了它,并找到了一些解决方案,但其中大多数是从一项活动到另一项活动。所以他们使用:

Intent intent = new Intent(this.getActivity() ,x.class);
getActivity().startActivity(intent);
overridePendingTransition(R.anim.slide_in, R.anim.slide_out);

由于我从片段中调用第二个活动,Android 不支持此方法(overridePendingTransition)。谁能告诉我有什么办法可以克服这个问题?简而言之,如果用户从片段导航到第二个活动,则第二个活动应该来自底部而不是正常动画。

提前致谢。

4

1 回答 1

0

在将调用动画的活动中,您应该使用它:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        overridePendingTransition(R.anim.anim_right_to_center, R.anim.anim_hold);
        setLayoutContent(R.layout.myactivtiy);
}

如果你想用动画出去,你应该使用这个:

@Override
    public void onPause(){
        //todo detach from updater
        super.onPause();
        overridePendingTransition(R.anim.anim_hold, R.anim.anim_center_to_right);
    }

其中 R.anim.center_to_right :

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

其中 R.anim.anim_hold :

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
       android:duration="500"
       android:fromXDelta="0%"
       android:interpolator="@android:anim/accelerate_interpolator"
       android:toXDelta="0">

于 2012-11-13T17:44:08.297 回答