我正在开发一个应用程序,其中我想要一个活动的自定义动画。更具体地说,我有一个片段和一个活动。当用户单击片段中ListView
中的项目时,用户将被导航到新活动,此活动应该来自底部而不是默认动画(淡入,我认为)。我用谷歌搜索了它,并找到了一些解决方案,但大多数是从一个活动到另一个活动。所以他们使用:
Intent intent = new Intent(this.getActivity() ,x.class);
getActivity().startActivity(intent);
overridePendingTransition(R.anim.slide_in, R.anim.slide_out);
由于我从片段调用第二个活动,因此Android不支持此方法(overridePendingTransition
)。谁能告诉我任何方法来克服这个问题?简单来说,如果用户从片段导航到第二个活动,则第二个活动应该来自底部而不是普通动画。
提前致谢。
答案 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">