12

我构建了一个包含很多活动的应用程序,我希望在它们之间进行“从右侧滑动进入/从左侧滑动退出”的过渡。

我不止一次读到幻灯片过渡应该是 Android 默认设置,但在我正在开发的设备上,默认情况下过渡是淡入/淡出(Galaxy Tab 2 7",在 ICS 4.0 上)。

我需要在应用程序级别声明什么,例如在清单文件中?

我在问,因为否则我需要添加overridePendingTransition (R.anim.right_slide_in, R.anim.left_slide_out);到我所有的过渡中,这些过渡很多......只是想知道在走这条路之前我是否遗漏了一些东西。

非常感谢

4

3 回答 3

10

没有答案...在我尝试过的设备 4+ 上,动画是带有放大或缩小功能的淡入淡出...

我在想要幻灯片动画的地方手动添加了代码:

//open activity
startActivity(new Intent(this, MyActivity.class));
overridePendingTransition(R.anim.right_slide_in, R.anim.left_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:duration="300"
    android:fromXDelta="100%p"
    android:toXDelta="0" />

</set>

从左到右的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:duration="300"
    android:fromXDelta="0"
    android:toXDelta="-100%p" />

</set>
于 2013-01-08T12:08:40.010 回答
4

在你的style.xml 文件中放

 <style name="WindowAnimationTransition">
    <item name="android:windowEnterAnimation">@android:anim/slide_in_left</item>
    <item name="android:windowExitAnimation">@android:anim/slide_out_right</item>
</style>

并添加

 <style name="AppTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
   ...
    <item name="android:windowAnimationStyle">@style/WindowAnimationTransition</item>
</style>
于 2016-11-14T12:26:28.097 回答
0

有一种方法涉及创建样式,然后在此处将其添加到清单中: 如何在 Android 应用程序中一次更改所有活动转换?,但我只能设法让它工作startActivity()。每当按下返回时,此方法将不起作用,或者我可能只是遗漏了一些东西。

于 2014-12-26T01:43:25.567 回答