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凹形屏适配说明
小米全面屏及虚拟键适配说明
小米刘海屏水滴屏

发布了446 篇原创文章 · 获赞 67 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/hongxue8888/article/details/104735703