2010-10-13 122 views
10

我想为我的启动画面添加淡出动画,也就是在关闭启动画面时我想带来淡出动画效果。Android - 启动画面的淡出动画

下面是我尝试过的代码。

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

但是,以上只能使用2.0。 Ny应用程序应该从1.5开始支持。

所以我为我的主要活动设置了以下动画。

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

OR

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> 

现在我可以看到淡入效果,但我可以看到blackscreen。

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

回答

2

你可以试着让你的活动半透明...看看半透明主题在SDK

@android:style/Theme.Translucent 
2

SWDeveloper,

虽然已经一年左右,因为我做的任何我自己开发了Android开发,我记得我自己的启动画面遇到了这个确切的问题。

不幸的是,对于2.0之前的版本,我相当确定你想要的转换类型在活动之间是不可能的。也就是说,在1.5/1.6中,只能在活动之间使用内置的过渡动画。

说到这里,我似乎记得我在给定的活动中使用了视图过渡动画来产生我期待的那种效果。换言之,在我的启动画面活动中,在转换到下一个活动之前,将初始视图淡出为空白视图。接下来的活动将开始在一个空白的白色视图,然后淡入实际的活动视图。

如果这看起来像很多工作,也可以将初始屏幕视图包含在您的初始活动中,并始终先将其呈现出来然后淡出。所有在同一活动。使用这种方法可能会节省您的时间和工作,但会使您失去将屏幕分隔成单独活动的一些模块性。

通过ViewFlipper小部件可以实现视图之间的动画(如果我没记错的话)。 Android文档可以在这里找到: http://developer.android.com/reference/android/widget/ViewFlipper.html

如果我可以得到我编写的应用程序的代码库,我会尝试稍后发布一个例子。

祝你好运!

+0

噢,在此期间,我似乎无法找到当时我看过的教程,但这里应该是一个很好的开始的地方: http://www.helloandroid.com/教程/如何使用,viewflipper – Kai 2010-12-08 19:56:28

2

如果您为启动屏幕使用单独的活动,则可以执行您注意到的overridePendingTransition调用仅适用于Android 2+。您可以选择到具有被用于构建的应用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 
} 

最好是有闪屏的主要活动(see this example)的一部分。当启动画面是主要活动的一部分时,您可以将动画简单地分配给启动画面布局。