教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

学习心得-Android 启动APP时黑屏白屏的三个解决方案

来源:网络收集 时间:2026-08-24
导读: Android 启动APP时黑屏白屏的三个解决方案 你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下。这里先了解一下为什么会出现这样的现象,其实很简单,简历一个简单

Android 启动APP时黑屏白屏的三个解决方案

你会很奇怪,为什么有些app启动时,会出现一会儿的黑屏或者白屏才进入Activity的界面显示,但是有些app却不会如QQ手机端,的确这里要做处理一下。这里先了解一下为什么会出现这样的现象,其实很简单,简历一个简单的例子就可以理解了。

其实,黑屏或者白屏这里并不是不正常,而是还没加载到布局文件,就已经显示了window窗口背景,黑屏白屏就是window窗口背景。代码如下,可以自己写个小demo就理解了。

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 注意:添加3秒睡眠,以确保黑屏一会儿的效果明显,在项目应用要去掉这3秒睡眠

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

// 在这里之前,黑屏或者白屏都是window的背景颜色,是窗口背景,还没到界面的布局呢,要执行setContentView后才显示布局

setContentView(http://doc.guandang.netyout.activity_launcher);

}

那window窗口背景在那里提供呢?在提供theme里面,如下提供的是白色背景,那就是启动时白屏一会儿的颜色设置。

<!-- Application theme. -->

<style name="AppTheme" parent="AppBaseTheme">

<item name="android:windowNoTitle">true</item>

<item name="android:windowBackground">@color/white</item>

<!-- All customizations that are NOT specific to a particular API-level can go here. -->

</style>

所以,在theme设置windowBackground就可以解决启动时白屏黑屏一会儿了,下面提供三种解决方案:

一、提供.png背景图

提供背景图是解决的一个方法,但是要适配各种屏幕,提供很多张图片。除非图片非常复杂只能用背景图了就用这种方法吧,否则个人不建议。

二、提供.9.png(NinePatch)背景图片

如果图片不是很复杂,可以做成NinePatch图片,那就直接制作NinePatch图片,提供一张

就可以适配任何手机,何乐而不为呢。

三、使用Layout-list制作背景图片

如果可以使用这种方式,推荐使用这种Layout-list制作背景图片。前2种都是使用图片占用内存啊,使用Layout-list比较省内存,做出app也不会说因为图片多体积变大吧。

下面给出代码。

LaunchActivity为启动界面停留3秒后跳转到主页面MainActivity,为了达到显示黑屏白屏的效果更明显,在setContentView之前线程睡眠3秒。

public class LauncherActivity extends Activity {

public final int MSG_FINISH_LAUNCHERACTIVITY = 500;

public Handler mHandler = new Handler(){

public void handleMessage(Message msg) {

switch (msg.what) {

case MSG_FINISH_LAUNCHERACTIVITY:

//跳转到MainActivity,并结束当前的LauncherActivity Intent intent = new Intent(LauncherActivity.this, MainActivity.class);

startActivity(intent);

finish();

break;

}; default: break; } };

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

// 不显示系统的标题栏,保证windowBackground和界面activity_main的大小一样,显示在屏幕不会有错位(去掉这一行试试就知道效果了)

getWindow().setFlags(http://doc.guandang.netyoutParams.FLAG_FULLSCREEN, http://doc.guandang.netyoutParams.FLAG_FULLSCREEN);

// 注意:添加3秒睡眠,以确保黑屏一会儿的效果明显,在项目应用要去掉这3秒睡眠

try {

Thread.sleep(3000);

} catch (InterruptedException e) {

e.printStackTrace();

}

setContentView(http://doc.guandang.netyout.activity_launcher);

// 停留3秒后发送消息,跳转到MainActivity

mHandler.sendEmptyMessageDelayed(MSG_FINISH_LAUNCHERACTIVITY, 3000);

}

}

activity_launcher.xml布局文件,很简单,要记住这里的LinearLayout使用的背景是layout_list_start_pic,跟主题theme使用一样的背景,这样就消除了背景不一样的效果。这里要自己试试才知道这样做的好处和效果。

<LinearLayout xmlns:android="http://doc.guandang.net/apk/res/android" xmlns:tools="http://doc.guandang.net/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/layout_list_start_pic" >

<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#ffffff" android:text="@string/hello_world" />

</LinearLayout>

AndroidManifest.xml,这里注意application使用的theme是AppTheme,而LauncherActivity使用的主题是StartAppTheme。这样做的效果是只要LauncherActivity使用StartAppTheme主题,其他Activity都是用AppTheme主题哦。

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://doc.guandang.net/apk/res/android"

package="http://doc.guandang.netuncheractivity"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdk

android:minSdkVersion="8"

android:targetSdkVersion="18" />

<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".LauncherActivity" android:label="@string/app_name" android:theme="@style/StartAppTheme" > <intent-filter> <action android:name="android.intent.action.MAIN" />

<category

android:name="http://doc.guandang.netUNCHER" />

</intent-filter>

</activity>

<activity android:name=".MainActivity"></activity>

</application>

</manifest>

styles.xml,2个主题设置

<resources xmlns:android="http://do …… 此处隐藏:3252字,全部文档内容请下载后查看。喜欢就下载吧 ……

学习心得-Android 启动APP时黑屏白屏的三个解决方案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1706391.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)