2010-10-13 123 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)的一部分。當啓動畫面是主要活動的一部分時,您可以將動畫簡單地分配給啓動畫面佈局。