Android app启动图适配方法实例
作者:plx_csdn 发布时间:2023-07-31 16:23:34
前言
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的周围,注意:的重要信息不要显示在图片的周边,尽量显示在图片的中间)
来源:https://blog.csdn.net/plx_csdn/article/details/122284665


猜你喜欢
- 导读Spring Boot应用可以使用spring-boot-maven-plugin快速打包,构建一个可执行jar。Spring Boot
- JPA介绍JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映
- 背景:使用Idea编辑器一. SpringBoot项目打war包步骤:在pom.xml文件中的<build>标签,使用<f
- 程序如下:View Code /* * Hanoi塔游戏 问题描述: * 汉诺塔:汉诺塔(又称河内塔)问
- 身为一名开发人员,大家都知道,我们经常会在项目中大量的编写许多重复的代码,比如说public Entity find(String id);
- 页面代码:<%@ page language="java" contentType="text/html
- 前一段时间粗略看了一下《深入Java虚拟机 第二版》,可能是因为工作才一年的原因吧,看着十分的吃力。毕竟如果具体到细节的话,Java虚拟机涉
- 本文实例详细描述了Android触屏测试代码,可实现对触屏的点击、移动、离开等事件的处理,对于Android初学者有很好的借鉴价值。具体功能
- Java中获取整点时间戳在实际的开发过程中,前端给后端传时间的时候,有时候传的是整点数值,比如:timeList=[00,01,02,03,
- 本篇文章,我们来讲解springcloud的服务注册和发现组件,上一章节我们讲解了如何搭建springcloud的多模块项目,已经新建了sp
- MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoD
- 前言在上一篇文章中,我们分析了Spring中Bean的实例化过程,在结尾我们知道了虽然bean的实例化完成了,但是其中的属性还没有被注入,今
- 这篇文章主要介绍了java内存泄漏与内存溢出关系解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 接口可以声明事件。 下面的示例演示如何在类中实现接口事件。 这些规则基本上都与实现任何接口方法或属性时的相同。在类中实现接口事件在类中声明事
- 在 APK 开发中,通过 Java 代码来打开系统的安装程序以安装 APK 并不是什么难事,一般的 Android 系统都有开放这一功能。但
- Mybatis表现关联关系比hibernate简单,没有分那么细致one-to-many、many-to-one、one-to-one。而是
- springboot 取消starter的自动注入starer是spring boot中一个很重要的概念,starter相当于一个模块,它能
- Spring MVC 启动的关键流程我们已经学习了 Handler 与 HandlerMapping,还未掌握的小伙伴可以翻看前面的文章进行
- 本文实例讲述了Android编程实现Listview点击展开和隐藏的方法。分享给大家供大家参考,具体如下:代码较多,所以找关键点大家贴出来,
- 命令模式命令模式很好理解,举个例子,司令员下令让士兵去干件事情,从整个事情的角度来考虑,司令员的作用是,发出口令,口令经过传递,传到了士兵耳