前言

app启动后的白屏问题,默认都是在splash页面加主题配置,主题配置一个背景来达到用户点击app图标就立马启动app的假象,大多情况下,使用背景单一的图片作为启动图,我们在设置背景颜色,就能适配的很不错了(背景颜色 logo图片的模式)。但是当启动图不再单一,而且复杂的图形时候,适配就成大问题了,下面介绍我的方法:

1、设置splash主题

<style name="MySplashTheme" parent="@android:style/Theme.Holo.NoActionBar">
        <item name="android:windowBackground">@drawable/splah_bg</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowBackground">@color/white</item>
        <item name="android:windowDrawsSystemBarBackgrounds">false</item>
    </style>

2、 splash_bg 设置:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/wecome4"
    android:dither="true"
    android:filter="true"
    android:antialias="true"
    android:gravity="fill">
</bitmap>

这里面的gravity = fill是设置图片拉伸的(可以用.9图片)

3、splash布局文件设置:

 <ImageView
        android:id="@ id/iv_bg"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        android:background="@drawable/splah_bg" />

注意这里的图片设置用 backgroup,而不是src。然后背景用上面的drawable文件,而不是直接使用图片,不然主题到splash布局切换的时候,图片会闪动。

注意这里的图片设置用 backgroup,而不是src。然后背景用上面的drawable文件,而不是直接使用图片,不然主题到splash布局切换的时候,图片会闪动。

注意这里的图片设置用 backgroup,而不是src。然后背景用上面的drawable文件,而不是直接使用图片,不然主题到splash布局切换的时候,图片会闪动。

上面说的是不能设置背景颜色的,如果启动图背景是纯色的,比如天猫那种,就一白色加一个logo,那种主题设置就不一样了,请用下面这种模式

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape>
            <solid android:color="#FFFFFF" />
        </shape>
    </item>
 
    <item >
        <bitmap
            android:gravity="fill"
            android:src="@drawable/wecome4"
            android:dither="true"
            android:filter="true"
            android:antialias="true"
            />
    </item>
</layer-list>

附问题:项目启动时,会有白屏现象(在点击 应用图标到看到启动页之间)。

处理办法:

一:我们尽量减少的Application类里面的耗时操作

二:设置项目启动页的style类型为透明的

处理之后的现象:看不到白屏,但是点击应用图标之后,会静止一段时间(没有任何反应),过一会儿,才会显示启动页

三:设置项目启动页的style类型为指定图片A(在SplashActivity里面 ,就不用设置setcontentView()了)

处理之后的现象:看不到白屏,但是点击应用图标之后,会显示刚刚设置的style的图片,过一会儿,才会显示启动页

这种做法遇到的问题:

如果 这个图片A的尺寸较小,那么的大尺寸的手机上,启动页会看到图片A的周边是有空白了。

这个问题处理办法:

1.如果 这个图片A的背景 有着明显的规律(这个比较巧合,很难遇到),比如:从上到下有渐变时,可以使用layer-list里的shape的gradient

2.在UI设计图片A的时候,将这个图片A的重要信息(应用的名称,icon等等)之外的其他背景 用透明表示,这样就可以使用layer-list里的shape了,将这个图片A的其它地方用shape的颜色来填充了,就不会看到周边空白的现象了。

四:设置项目启动页,在SplashActivity里面 ,用setcontentView(),设置xml布局里面的ImageView的scaleType为能自动填充满界面布局的类型:centerCrop(注意:这个类型会自动剪切掉图片A的周围,注意:的重要信息不要显示在图片的周边,尽量显示在图片的中间)

总结

到此这篇关于Android app启动图适配方法的文章就介绍到这了,更多相关Android app启动图适配内容请搜索Devmax以前的文章或继续浏览下面的相关文章希望大家以后多多支持Devmax!

Android app启动图适配方法实例的更多相关文章

  1. 详解如何通过H5(浏览器/WebView/其他)唤起本地app

    这篇文章主要介绍了详解如何通过H5(浏览器/WebView/其他)唤起本地app的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. H5混合开发app如何升级的方法

    本篇文章主要介绍了H5混合开发app如何升级的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  3. html5唤起app的方法

    这篇文章主要介绍了html5唤起app的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  4. xcode – 上传到App Store时进行身份验证

    只需为现有安装/文件夹创建备份,这很重要,因为在(新)安装期间,Transporter将删除以前的安装:现在运行以下命令来更新Transporter:希望这有助于某人.

  5. App store拒绝应用程序在iOs 10上支持IPV6网络

    我收到苹果公司的app拒绝邮件,下面是我们在连接到IPv6网络的Wi-Fi上运行iOS10.0.2的iPad和iPhone上查看了应用中的一个或多个错误.具体来说,应用程序在启动时仍保留在启动屏根据他们的要求,我已经在我的Mac上创建了NAT64网络,并为iPhone5S设备10.0.2os版本共享了互联网,App工作正常,但苹果称其不与IPv6合作任何人都可以确认我需要检查其他什么吗?

  6. ios – 我如何从iPhone中提取IPA以从App Store下载以便我可以在IPA中查看资产?

    我最喜欢的应用程序之一已从应用程序商店中删除,我想因为它没有在太长时间内更新.我有一台旧设备,但没有下载到我的新手机上.如何获得IPA以便我可以查看应用程序包并查看应用程序中的资产?

  7. ios – – [Not A Type _cfTypeID]:发送到解除分配的实例的消息

    我正在使用代码为图像提供不同的效果,如对比度,色调,饱和度等;并使用了appleglImageProcessing代码,我从我的视图跳转到glimgeProcessing,并将结果图像保存到appDelegate文件中的uiimage属性.从Eagle视图返回后,我使用viewDidAppear函数将我的图像视图更改为更新的图像我的代码是我的日志响应是尝试将图像设置为我的imageView时出现问

  8. iOS扩展:是否需要增加其捆绑版本(CFBundleVersion)?

    我是否必须在我的扩展程序的Info.plist中增加CFBundLeversion以确保它覆盖现有的?或者,如果在主应用程序的Info.plist中这样做就足够了?

  9. ios – navigator.app undefined

    谢谢你的帮助.干杯,米格尔解决方法“navigator.app”对象仅适用于Android.幸运的是,在即将发布的PhoneGap2.3.0版本中你可以做到:做你想做的事.

  10. 验证Xcode安装时,“/Applications/Xcode.app:密封资源丢失或无效”错误

    你认为我需要重新安装Xcode以防万一?

随机推荐

  1. Flutter 网络请求框架封装详解

    这篇文章主要介绍了Flutter 网络请求框架封装详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  2. Android单选按钮RadioButton的使用详解

    今天小编就为大家分享一篇关于Android单选按钮RadioButton的使用详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

  3. 解决android studio 打包发现generate signed apk 消失不见问题

    这篇文章主要介绍了解决android studio 打包发现generate signed apk 消失不见问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

  4. Android 实现自定义圆形listview功能的实例代码

    这篇文章主要介绍了Android 实现自定义圆形listview功能的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. 详解Android studio 动态fragment的用法

    这篇文章主要介绍了Android studio 动态fragment的用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. Android用RecyclerView实现图标拖拽排序以及增删管理

    这篇文章主要介绍了Android用RecyclerView实现图标拖拽排序以及增删管理的方法,帮助大家更好的理解和学习使用Android,感兴趣的朋友可以了解下

  7. Android notifyDataSetChanged() 动态更新ListView案例详解

    这篇文章主要介绍了Android notifyDataSetChanged() 动态更新ListView案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下

  8. Android自定义View实现弹幕效果

    这篇文章主要为大家详细介绍了Android自定义View实现弹幕效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. Android自定义View实现跟随手指移动

    这篇文章主要为大家详细介绍了Android自定义View实现跟随手指移动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. Android实现多点触摸操作

    这篇文章主要介绍了Android实现多点触摸操作,实现图片的放大、缩小和旋转等处理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部