Android社交App開發之啓動頁

啓動頁主要包括以下內容:

  1. 把啓動頁全屏
  2. 延遲進入主頁
  3. 根據具體邏輯是進入主頁還是引導頁還是登錄頁
  4. 適配劉海屏

啓動頁全屏

參考:Android設置Activity全屏的三種方式

values目錄下的styles.xml文件中添加AppThemeFull樣式

    <!--Full Style Activity -->
    <style name="AppThemeFull" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowIsTranslucent">true</item>
    </style>

在AndroidManifest.xml文件中使用AppThemeFull樣式

        <activity
            android:name=".ui.IndexActivity"
            android:theme="@style/AppThemeFull">
...

延遲進入主頁

private static final int SKIP_MAIN = 1000;

    private Handler mHandler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(Message message) {
            switch (message.what) {
                case SKIP_MAIN:
                    startMain();
                    break;
            }
            return false;
        }
    });

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_index);
        mHandler.sendEmptyMessageDelayed(SKIP_MAIN, 2 * 1000);
    }

啓動頁後邏輯

 /**
     * 進入主頁
     */
    private void startMain() {
        //1.判斷App是否第一次啓動 install - first run
        boolean isFirstApp = SpUtils.getInstance().getBoolean(Constants.SP_IS_FIRST_APP, true);
        Intent intent = new Intent();
        if (isFirstApp) {
            //跳轉到引導頁
            intent.setClass(this, GuideActivity.class);
            //非第一次啓動
            SpUtils.getInstance().putBoolean(Constants.SP_IS_FIRST_APP, false);
        } else {
            //2.如果非第一次啓動,判斷是否曾經登錄過
            String token = SpUtils.getInstance().getString(Constants.SP_TOKEN, "");
            if (TextUtils.isEmpty(token)) {
                 //跳轉到登錄頁
                 intent.setClass(this, LoginActivity.class);
            } else {
                //跳轉到主頁
                intent.setClass(this, MainActivity.class);
            }
        }
        startActivity(intent);
        finish();
    }

適配劉海屏

參考:
Android 劉海屏適配全攻略

Google Android屏幕缺口支持

vivo全面屏應用適配指南
OPPO凹形屏適配說明
小米全面屏及虛擬鍵適配說明
小米劉海屏水滴屏

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章