启动页的适配

通过设置启动页主题,避免应用启动时出现空白窗口,提升用户体验。采用.9图片解决不同屏幕分辨率下的拉伸问题,实现启动页完美适配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

启动页的适配

  • 问题

    当应用启动的时候,系统会判断当前应用的进程是否已被创建,若没有创建则需要为这个引用创建一个进程,并且初始化Application,那这都需要一定的时间的,而系统为了让用户知道已经点击了应用图标,所以会创建一个白色或黑色窗口(Window),直到Application初始化完成才进入启动页(也就是我们说的冷启动),这样会大大的减少用户的体验感

  • 解决方案1

    * 为了避免在应用启动的时候会出现白色/黑色的窗口一段时间,我们可以为启动页设置Theme,在Theme中我们为android:windowBackground设置一张图片,这张图片最好和启动页的背景图一样,这样就不会产生切换的视觉感,SplashActivity也就可以不用设置View了
    
    
             //1.在values下的style.xml中设置一个主题  
      	   <style name="AppTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar">
      	        <item name="android:windowFullscreen">true</item>
      	        <item name="android:windowBackground">@drawable/splash_bg</item>
      	    </style>
    
            //2.在values-v21下的style.xml中设置一个主题  
            <style name="AppTheme.Splash" parent="Theme.AppCompat.Light.NoActionBar">
           <item name="android:windowFullscreen">true</item>
            <item name="android:windowBackground">@drawable/splash_bg</item>
           <item name="android:windowDrawsSystemBarBackgrounds">false</item>
          </style>
    
       
             //3.在清单文件中为启动页配置主题
                <activity
                        android:name=".ui.activity.SplashActivity"
                  android:screenOrientation="portrait"
                  android:theme="@style/AppTheme.Splash">
                  <intent-filter>
                      <action android:name="android.intent.action.MAIN" />
                      <category android:name="android.intent.category.LAUNCHER" />
                  </intent-filter>
          </activity>
    
    
    
             //4.启动页设置
             class SplashActivity :AppCompatActivity() {
       
               override fun onCreate(savedInstanceState: Bundle?) {
                  super.onCreate(savedInstanceState)
                   doSplashTask()
               }
              }
    
  • 存在的问题

      *  这张图片一般我们会切不同分辨率的,但是因为碎片化的问题,特别全面屏出来后,各种分辨率使得我们切的尺寸图无法完全的去覆盖,在一些机型上也会出现被拉伸或变形的情况,若为了单独一个屏幕切一张图片去适配,无论是工作量还是项目的体积都会大大增加的
    
  • 那么如何解决优化呢?

     * 那么上面的方案已经部分解决了启动页的适配问题以及应用启动体验的问题,现在只要解决在屏幕上拉伸的问题就好了,那这时候我们可以考虑使用.9图片,.9的图片可以在尺寸不足的时候,自动根据扩展需要进行拉伸,这样就不会造成在不同的屏幕上会造成拉伸变形的问题,针对现在的屏幕包括全面屏,其实我们直到设置在drawable-xxdpi下放一张1920*1080的.9图片就可以了
    

在这里插入图片描述

  • 适配后的效果图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值