在Android中从一个活动切换到另一个活动时,我想要一个动画。我的目标是动画的底部到顶部。
我该怎么做?
答案 0 :(得分:27)
是的,这是可能的。 check out this question.您必须在动画文件夹中定义动画,而不是使用
覆盖当前动画overridePendingTransition( R.anim.slide_in_up, R.anim.slide_out_up );
答案 1 :(得分:9)
使用此
转到其他活动时,您可以设置动画overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
如果您通过重写方法
从最后一个活动回到上一个活动,也可以获得相同的动画@Override
public void onBackPressed() {
super.onBackPressed();
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
}
答案 2 :(得分:0)
一种更好的方法是创建如下所示的样式
<style name="SlideAnimation.Activity" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/slide_from_top</item>
<item name="android:activityOpenExitAnimation">@anim/slide_to_bottom</item>
<item name="android:activityCloseEnterAnimation">@anim/slide_from_bottom</item>
<item name="android:activityCloseExitAnimation">@anim/slide_to_top</item>
</style>
如果要为整个应用程序实现此功能,则可以像be这样在应用程序主题中使用它
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorWhite</item>
<item name="colorPrimaryDark">@color/colorWhite</item>
<item name="colorAccent">@color/colorAppBlue</item>
<item name="android:statusBarColor">@color/colorPrimaryDark</item>
<item name="android:windowAnimationStyle">@style/SlideAnimation.Activity</item>
</style>
并在如下所示的应用程序标记的清单中声明AppTheme-
<application
android:name=".MyApp"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme"
>
如果要用于特定活动,则将主题应用于清单中的该活动。
答案 3 :(得分:-1)
您可以覆盖public boolean onOptionsItemSelected(MenuItem item)
功能,然后使用finish()
,然后使用overridePendingTransition()
。
例如,在您的活动中添加以下代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home: // navigation up.
finish();
overridePendingTransition(R.anim.ENTER_ANIMATION, R.anim.EXIT_ANIMATION);
return true;
case ....: // implementation of other menu items.
}
return super.onOptionsItemSelected(item);
}
另一种方法是覆盖public boolean onNavigateUp()
函数。但onNavigateUp()
仅适用于16级及以上的API。