去一个新活动的最佳方式是什么,但让它看起来像活动向左滑动并且新活动进入屏幕?我正在使用意图来调用新活动,如果我希望应用程序是轻量级的,这是这样做的吗?
更好地解释一下:在我的 Android 手机上,我可以用主菜单向右滑动视图,然后从左侧进入朋友流并在屏幕上进行。我想在我的应用程序中通过按钮点击来完成它,这是我所追求的“滑动”。谢谢!
去一个新活动的最佳方式是什么,但让它看起来像活动向左滑动并且新活动进入屏幕?我正在使用意图来调用新活动,如果我希望应用程序是轻量级的,这是这样做的吗?
更好地解释一下:在我的 Android 手机上,我可以用主菜单向右滑动视图,然后从左侧进入朋友流并在屏幕上进行。我想在我的应用程序中通过按钮点击来完成它,这是我所追求的“滑动”。谢谢!
在 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);
}
您可以使用 left_slide_out.xml(只需将 Josh 的 right_slide_out.xml 中的 toXDelta 更改为 -100%p),以使旧活动消失在左侧(并且两个动画的持续时间也相同)。
是的,使用意图是启动另一个活动的标准方式,并且通常会执行您提到的滑动操作。例如 startActivity( new Intent( this, myNextActivity.class ) ); 会做的。
杰姆斯是对的。默认情况下,您将在启动新意图时获得滑动动画。
如果您正在寻找更自定义的动画,您可以使用overridePendingTransition。请记住,它是在 API 级别 5 中添加的。有关示例用法,请参阅此API 演示。
关于进入和退出动画是什么有点混乱。对于那些仍在思考它的人,这里有一个模板..
overridePendingTransition(
enterAnimationForCalledActivity,
exitAnimationForCallingActivity
);
这应该可以稍微清除一下空气。