• Activity取消界面切换的默认动画方法


    一般启动一个新的Activity都默认有切换的动画效果,比如界面从右至左的移动。

    但是有些时候我们不需要这个动画,怎么办?

    操作方法比较麻烦,这里我推荐其中一种。我这里是要做启动页splash到首页Home无缝展示,即启动页的图片背景和首页最上层的悬浮背景图是一模一样,用户会以为还在启动页,我这里会做些动画,然后进行开门效果。(首页会多出2个按钮,此时就不是启动页了)

    主要实现思路:

    1、需要设置无动画效果的主题,应用到对应的界面。

    2、在启动页面界面结束时,需要增加一个方法 overridePendingTransition(0, 0);

    在SplashActivity.this.finish();之前。

    3、gif中启动页面和首页都是同一个图片(首页布局上面悬浮了启动页的图片,利用window的decorview)

    4、在style.xml里,需要加入下面主题,其中parent=”AppTheme”中的父主题是你应用自身的主题,name=”Theme”的theme是即将需要使用的。接下来在首页的Android:theme=”@style/Theme”设置到你的首页(即你启动页跳转的下一级页面)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <!-- 取消界面转场动画使用-->
      <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>

    5、如果需要实现gif中效果,防止启动页的图片可能延伸到状态栏,我这边加了占位布局(高度为动态获取的系统状态栏高度,代码是在启动页获取高度)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @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;
      }

    以上就是小编为大家带来的Activity取消界面切换的默认动画方法(推荐)全部内容了,希望大家多多支持脚本之家~

  • 相关阅读:
    hdu 5902 Seam Carving
    hdu 5091 Beam Cannon
    hdu 1542 Atlantis
    hdu 2196 Computer
    第一个爬虫和测试
    排球比赛规则
    第十周博客作业
    科学计算可视化
    用matplotlib绘制图像
    面对对象学习
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13317694.html
Copyright © 2020-2023  润新知