活动的自定义动画

时间:2012-11-13 17:39:51

标签: android animation

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

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

由于我从片段调用第二个活动,因此Android不支持此方法(overridePendingTransition)。谁能告诉我任何方法来克服这个问题?简单来说,如果用户从片段导航到第二个活动,则第二个活动应该来自底部而不是普通动画。

提前致谢。

1 个答案:

答案 0 :(得分: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">