进入新活动的最佳方式是什么,但让活动向左滑动,新活动进入屏幕?我正在使用Intent来调用新活动,如果我希望应用程序是轻量级的话,是否可以这样做?
为了更好地解释一下:在我的Android手机上,我可以向右侧的家庭meny滑动视图,然后从左侧输入朋友流并在屏幕上进行。我想在我的应用程序中使用buttonclicks来实现它,这是我所追求的“滑动”。 谢谢!
答案 0 :(得分:90)
在Android OS 2.1或更高版本中,我认为你可以使用 OverridePendingTransition()方法来提供你正在寻找的活动动画之间的转换。
首先,在 / res / anim / 中定义几个动画资源。这是一个名为 right_slide_out.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:fromXDelta="0"
android:toXDelta="100%p"
android:duration="500"
/>
</set>
另一个名为 right_slide_in.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:fromXDelta="100%p"
android:toXDelta="0"
android:duration="700"
/>
</set>
然后,当您开始新活动时,请使用OverridePendingTransition方法,如下所示:
startActivity(intent);
overridePendingTransition (R.anim.right_slide_in, R.anim.right_slide_out);
应该处理启动活动的过渡动画。
反过来说,当那个活动结束并且你回到原来的活动时,它会更加模糊。
如果您有一些UI控件来结束该活动并调用Activity.finish(),那么您可以在此之后立即添加overridePendingTransition()。
要处理用户通过按后退按钮结束活动的情况,请使用以下内容:
@Override
public void onBackPressed()
{
this.finish();
overridePendingTransition (R.anim.right_slide_in, R.anim.right_slide_out);
}
答案 1 :(得分:4)
您可以使用left_slide_out.xml(只需将Josh的right_slide_out.xml中的toXDelta更改为-100%p),以使旧活动消失在左侧(并且在两个动画上也具有相同的持续时间)
答案 2 :(得分:3)
是的,使用意图是开始另一项活动的标准方法,通常会提到您提到的滑动内容。 例如startActivity(new Intent(this,myNextActivity.class));会做的。
答案 3 :(得分:3)
Jems是对的。默认情况下,您将在启动新意图时获得滑动动画。
如果您正在寻找更多自定义动画,可以使用overridePendingTransition。请注意,它已在API级别5中添加。有关示例用法,请参阅此API demo。
答案 4 :(得分:1)
关于进入和退出动画的内容存在一些混淆。对于那些仍在思考它的人来说,这是一个模板..
overridePendingTransition(
enterAnimationForCalledActivity,
exitAnimationForCallingActivity
);
这应该可以清除空气。