App启动页闪屏优化

目的

为了解决Android 启动时闪屏启动视觉体验

(第一步)主题设置

<style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:statusBarColor" tools:ignore="NewApi">@color/white</item>
        <!--        <item name="android:windowIsTranslucent">true</item> 注意:这个用了的话点击启动图标需要等个1~2秒左右才能打开APP, 所以弃用-->
        <item name="android:windowBackground">@drawable/loading_splash</item>
        <item name="android:windowContentOverlay">@null</item>
        <item name="android:background">@null</item>
        <item name="windowNoTitle">true</item>
        <item name="android:windowTranslucentStatus">true</item>
        <item name="android:windowTranslucentNavigation">true</item>
        <item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowAnimationStyle">@style/animationFade</item>

    </style>

(第二步)设置图片背景 loading_splash.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@color/white"
        android:gravity="fill" />
    <item
        android:gravity="top"
        android:top="159dp">
        <bitmap
            android:gravity="center"
            android:src="@mipmap/img_logo" />
    </item>
    <item
        android:bottom="100dp"
        android:gravity="bottom">
        <bitmap
            android:gravity="bottom"
            android:src="@mipmap/img_startuppage_bottom"
            android:tileMode="disabled" />
    </item>
</layer-list>

(第三步)splash布局 activity_splash.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/loading_splash"
    android:orientation="vertical">

    <!-- 自己想要添加的部分-->
 
</FrameLayout>

注意

在SplashActivity启动中需要去掉windows的背景,然后设置splashActivity的背景,做到无缝衔接.在Activity中设置以下代码:

this.getWindow().getDecorView().setBackground(null);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容