通常启动一个新的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;
}
复制代码