Android - 闪屏界面的淡出动画

10

我想给我的启动画面添加淡出动画,即在关闭启动画面时,我想实现淡出动画效果。

以下是我尝试过的代码。

overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

但是上述代码仅适用于 Android 2.0 及以上版本,我的应用需要支持 Android 1.5 及以上版本。

因此,我为我的主活动设置了以下动画。

getWindow().setWindowAnimations(android.R.style.Animation_Toast);

或者

getWindow().setWindowAnimations(R.style.Theme_FadeIn);

我的Theme.FadeIn包含

<style name="Theme.FadeIn">
<item name="android:windowNoTitle">true</item>
<item name="android:activityOpenEnterAnimation">@anim/fade_in</item>   
</style>

现在我能看到淡入效果,但是我也能看到黑屏。

如何在没有黑屏的情况下获得淡入或淡出效果。

3个回答

2
如果你为闪屏界面使用单独的Activity,你可以调用Android 2+可用的overridePendingTransition方法。你可以选择让针对2+版本构建的应用执行动画过渡效果,而之前的版本则执行默认的过渡效果。
try {
    Method method = Activity.class.getMethod("overridePendingTransition", new Class[]{int.class, int.class});
    method.invoke(youractivity, inanimation, outanimation);
} catch (Exception e) {
    // Can't change animation, so do nothing
}

最好将启动画面作为主Activity的一部分(请参考此示例)。当启动画面是主Activity的一部分时,您可以将动画直接分配给启动画面布局。


2
您可以尝试将您的活动设置为半透明...查看sdk中的半透明主题。
@android:style/Theme.Translucent

2

SWDeveloper,

虽然我已经有一年没有进行安卓开发了,但我还记得我在自己的启动画面上遇到了这个问题。

不幸的是,在2.0之前的版本中,我相当确定你想要的转场效果在活动之间是不可能实现的。也就是说,在1.5/1.6中,只能使用内置的转场动画在活动之间进行切换。

话虽如此,我记得我用过视图转换动画来产生我所需要的效果。换句话说,在我的启动画面活动中,将初始视图淡出为一个空白白色视图,然后再过渡到下一个活动。接下来的活动将从一个空白白色视图开始,然后淡入到实际的视图中。

如果这看起来很麻烦,你也可以选择将启动画面视图包含在初始活动中,并始终首先展示它,然后淡出。全部在同一个活动中完成。使用这种方法可能会节省时间和工作量,但会失去将屏幕分离成单独活动的一些模块性。

(如果我记得正确)在视图之间的动画可以通过ViewFlipper小部件来实现。Android文档可以在此处找到: http://developer.android.com/reference/android/widget/ViewFlipper.html

如果我能获得我编写的应用程序的代码库,我将尝试稍后发布一个示例。

祝你好运!


哦,与此同时,我似乎找不到当时看的教程了,但是这里有一个应该是一个很好的起点: http://www.helloandroid.com/tutorials/how-use-viewflipper - Kai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接