我构建了一个包含很多活动的应用程序,我希望“从右侧进入/滑动,从左侧退出”在它们之间进行过渡。
我不止一次地读过幻灯片转换应该是Android的默认设置,但是我在转换上开发的设备默认是淡入/淡出(Galaxy Tab 2 7“,在ICS 4.0上)。
我是否需要在应用程序级别声明任何内容,例如在清单文件中?
我在问,因为否则我需要将overridePendingTransition (R.anim.right_slide_in, R.anim.left_slide_out);
添加到我所有的过渡中......这只是想知道我在走这条路之前是否遗漏了什么。
非常感谢
答案 0 :(得分:7)
没有答案......在我试过的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>
答案 1 :(得分:1)
在 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>
答案 2 :(得分:0)
有一种方法涉及创建一个样式,然后在清单中添加它:
How to change all the activity transitions at once in Android application?,
但我只是设法让它在startActivity()
上工作。每当按下后退时,此方法将无效,或者我可能只是遗漏了某些内容。