Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Activity取消界面切換的默認動畫方法(推薦)

Activity取消界面切換的默認動畫方法(推薦)

編輯:關於Android編程

一般啟動一個新的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”設置到你的首頁(即你啟動頁跳轉的下一級頁面)。

<!-- 取消界面轉場動畫使用-->
  <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中效果,防止啟動頁的圖片可能延伸到狀態欄,我這邊加了占位布局(高度為動態獲取的系統狀態欄高度,代碼是在啟動頁獲取高度)。

@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取消界面切換的默認動畫方法(推薦)全部內容了,希望大家多多支持本站~

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved