我有一个转变活动的开启/关闭/进入/退出动画主题:
<style name="down_up_theme" parent="Theme.rtlfr">
<item name="android:windowAnimationStyle">@style/down_up_animation</item>
</style>
<style name="down_up_animation" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/slide_in_top</item>
<item name="android:activityOpenExitAnimation">@anim/hold</item>
<item name="android:activityCloseEnterAnimation">@anim/hold</item>
<item name="android:activityCloseExitAnimation">@anim/slide_out_bottom</item>
</style>
而在清单:
<activity android:name=".activity.ArticlesActivity"
android:theme="@style/down_up_theme" />
我们的目标是,使活动内容滑下开始,并在出口处向上滑动。
该动画在2.3做工精细。 在4.0,虽然,退出动画(向上滑动)不起作用。 它所做的动画是从这项活动催生了活动的结束。 在我的情况,我想用动画的文章列表活动的结束,而不是文章细节的收盘有滑动画。
我想我可以尝试关闭动画添加到衍生为一个我想动画的活动,但它实际上是派生应该有不同的动画活动。 我也找不到这个2.3与4.0的区别中的任何信息资料 。
我怎样才能让我的动画在4.0的工作?
我不知道为什么退出动画主题设置是不工作的ICS +,但调用overridePendingTransition()
似乎是工作。 为你做这个最简单的方法可能是重写finish()
在你的活动:
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.hold, R.anim.slide_out_bottom);
}
我想只是一点点额外的添加到这个答案; 倍率动画解决方案正常工作,但你可能不希望硬编码的动画。 这将是很好,从清单让他们,你会为平台的其它版本..所以....
添加几个成员字段到你的活动举行连接到你的活动动画的ID ..
protected int activityCloseEnterAnimation;
protected int activityCloseExitAnimation;
并在某处你的onCreate ...
// Retrieve the animations set in the theme applied to this activity in the
// manifest..
TypedArray activityStyle = getTheme().obtainStyledAttributes(new int[] {android.R.attr.windowAnimationStyle});
int windowAnimationStyleResId = activityStyle.getResourceId(0, 0);
activityStyle.recycle();
// Now retrieve the resource ids of the actual animations used in the animation style pointed to by
// the window animation resource id.
activityStyle = getTheme().obtainStyledAttributes(windowAnimationStyleResId, new int[] {android.R.attr.activityCloseEnterAnimation, android.R.attr.activityCloseExitAnimation});
activityCloseEnterAnimation = activityStyle.getResourceId(0, 0);
activityCloseExitAnimation = activityStyle.getResourceId(1, 0);
activityStyle.recycle();
那么无论你的活动结束/应适用的动画包括...
overridePendingTransition(activityCloseEnterAnimation, activityCloseExitAnimation);
和你的活动应该正确履行您在连接到活动中您的清单主题/样式设置动画。
我被这个问题困惑了。 不过幸运的是不久后,我找到了答案了。 您应该检查你的动画文件,它的根元素是否在“设置”与否。 如果不是的话,你应该把它包“SET”元素,然后ActivityCloseAnimation属性将正常工作。 我已经尝试过了。 希望它可以帮助你。
你看768,16这里使用overridePendingTransition和windowEnterAnimation / windowExitAnimation 768,16为你工作