Android适配启动页白屏(避免图片icon拉伸)

引入

做过Splash欢迎页的都知道,一般的做法是在style中设置windowBackground为启动图,来避免冷启动时的黑屏或白屏,但是windowBackground并不能centerCrop,如果放一张尺寸的图在某些屏幕上就会出现拉伸,这种用户体验显然是很差的。

解决

1、首先,我们需要在res/drawable目录下创建一个 xml 文件,并命名为background_splash.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:opacity="opaque">
    <!--白色矩形 作为背景色-->
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/color" />
        </shape>
    </item>
   <!--启动页面logo-->
    <item android:bottom="80dp">
        <bitmap android:src="@drawable/welcome_logo"
        android:gravity="bottom|center_horizontal"/>
    </item>
</layer-list>

2、在style.xml新建一个主题AppTheme.Launcher

<style name="AppTheme.Launcher">
        <item name="android:windowBackground">@drawable/background_splash</item>
</style>

3、然后在启动Activity设置我们刚才定义的theme

<activity
        android:name=".ui.SplashActivity"
        android:theme="@style/AppTheme.Launcher">
        <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
</activity>

大功告成

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

推荐阅读更多精彩内容

  • 目前,很多 Android 应用都有一个启动界面 (Launch/Splash Screen),即应用在从桌面或应...
    HsuJin阅读 1,493评论 0 33
  • 最近一直想整理一个关于Android热启动,冷启动的文章,于是就有了下文(本文仅仅只是整理总结前人的知识点)来源:...
    忘尘And阅读 2,973评论 0 7
  • 启动页面 目前,很多 Android 应用都有一个启动界面 (Launch/Splash Screen),即应用在...
    笑叶林阅读 806评论 0 6
  • 转载http://www.cnblogs.com/xunzhi/p/5794793.html 一、应用的启动方式 ...
    聪_0b56阅读 1,233评论 0 0
  • 湖北文弟送来字一幅《上善若水》甚是喜欢 上善若水字字香 趣长笔短骨神藏 贤弟荆楚展胸意 我乃书空醉斜阳
    星之光阅读 204评论 0 0