通常啓動一個新的Activity都默認有切換的動畫效果,好比界面從右至左的移動。可是有些時候咱們不須要這個動畫,怎麼辦?操做方法比較麻煩,這裏我推薦其中一種。我這裏是要作啓動頁splash到首頁Home無縫展現,即啓動頁的圖片背景和首頁最上層的懸浮背景圖是如出一轍,用戶會覺得還在啓動頁,我這裏會作些動畫,而後進行開門效果。(首頁會多出2個按鈕,此時就不是啓動頁了) 效果以下: android
<!-- 取消界面轉場動畫使用-->
<style name="Theme" parent="AppTheme">
<item name="android:windowAnimationStyle">@style/Animation</item>
</style>
<style name="Animation">
<item name="android:activityOpenEnterAnimation">@null</item>
<item name="android:activityOpenExitAnimation">@null</item>
<item name="android:activityCloseEnterAnimation">@null</item>
<item name="android:activityCloseExitAnimation">@null</item>
<item name="android:taskOpenEnterAnimation">@null</item>
<item name="android:taskOpenExitAnimation">@null</item>
<item name="android:taskCloseEnterAnimation">@null</item>
<item name="android:taskCloseExitAnimation">@null</item>
<item name="android:taskToFrontEnterAnimation">@null</item>
<item name="android:taskToFrontExitAnimation">@null</item>
<item name="android:taskToBackEnterAnimation">@null</item>
<item name="android:taskToBackExitAnimation">@null</item>
</style>
複製代碼
五、若是須要實現gif中效果,防止啓動頁的圖片可能延伸到狀態欄,我這邊加了佔位佈局(高度爲動態獲取的系統狀態欄高度,代碼是在啓動頁獲取高度)。bash
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
int statusBarHeight = getStatusBarHeight();
PreferencesUtil.putInt(this, PreferenceKey.SETTING, PreferenceKey.STATUS_BAR_HEIGHT,
statusBarHeight);
LogUtil.e(statusBarHeight + "");
}
public int getStatusBarHeight() {
int result = 0;
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android");
if (resourceId > 0) {
result = getResources().getDimensionPixelSize(resourceId);
}
return result;
}
複製代碼