如何正确实现Android启动屏画面的方法(避免白屏)

Android启动屏不正确的实现可能会导致用户长时间等待,或者可能会出现黑白屏。这里简单演示如何正确实现Android启动屏。

演示分为以下几个步骤:

  1. 在res/drawable文件夹中创建splash_background.xml文件。
  2. 编辑res/values/styles.xml
  3. 创建java/.../SplashActivity
  4. 编辑manifests/AndroidManifest.xml

1、在res/drawable文件夹中创建splash_background.xml文件

根据你的需求调整位图图像的重力和尺寸。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

  <item android:drawable="@color/colorPrimary"/>

  <item android:gravity="center" android:width="100dp" android:height="100dp">
    <bitmap
      android:gravity="fill_horizontal|fill_vertical"
      android:src="@drawable/logo"/>
  </item>

</layer-list>

2、编辑res/values/styles.xml

这里的样式用于启动画面。 这是为了在启动屏幕时隐藏操作栏。

<resources>

  <!-- Base application theme. -->
  <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
  </style>

  <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_background</item>
  </style>

</resources>

3、创建java/.../SplashActivity

一旦App启动,SplashActivity将启动,然后转移到MainActivity。

package com.example.jtdan.goodSplash;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;

public class SplashActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    //switch from splash activity to main activity
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
    finish();
  }
}

4、编辑manifests/AndroidManifest.xml

在清单文件中添加新的启动画面Activity。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example.jtdan.goodSplash">

  <application

    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="goodSplash"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity android:name="com.example.jtdan.goodSplash.SplashActivity" android:theme="@style/SplashTheme">
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>

    <activity android:name="com.example.jtdan.goodSplash.MainActivity"></activity>

  </application>

</manifest>

示例源码地址:https://github.com/mrjoedang/goodSplash

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Android启动屏实现左右滑动切换查看功能
  • Android技巧一之启动屏+新功能左右导航逻辑
(0)

相关推荐

  • Android启动屏实现左右滑动切换查看功能

    本文介绍一个app最常见的特性,就是新功能属性介绍和启动屏,一般会怎么实现呢,这不就打算告诉大家了么. 先说逻辑 先判断是否第一次启动app,如果是,则进入功能使用导航(最简单的做法就是,左右滑动切换查看,滑动到最后一页点击按钮进入首页). 如果不是,则显示启动屏,2秒之后进入首页. 逻辑是很简单,如果有广告怎么办?广告肯定是从服务器拿,但会缓存到本地,没网的时候可以显示,可以使用webView来显示广告,反正笔者是这样干,具体实现先不说. 看看效果 上代码 SplashActivity.jav

  • Android技巧一之启动屏+新功能左右导航逻辑

    前言 很长一段时间没写博客了,再不写点东西真说不过去,把工作上的一些有价值的东西整理出来分享,在当下还有点时效性,不然迟早会烂在肚子里的.还记得之前小巫有个开源计划是想实现一个星期开发app,现在把它拾起来,计划没有实行起来跟我那懒惰的身躯有关,任何伟大的事情都需要强大的执行力才能实现,慢一点没关系,能创造点东西就是值得的事情. 本篇博客先介绍一个app最常见的特性,就是新功能属性介绍和启动屏,一般会怎么实现呢,这不就打算告诉大家了么. 先说逻辑 先判断是否第一次启动app,如果是,则进入功能使

  • 如何正确实现Android启动屏画面的方法(避免白屏)

    Android启动屏不正确的实现可能会导致用户长时间等待,或者可能会出现黑白屏.这里简单演示如何正确实现Android启动屏. 演示分为以下几个步骤: 在res/drawable文件夹中创建splash_background.xml文件. 编辑res/values/styles.xml 创建java/.../SplashActivity 编辑manifests/AndroidManifest.xml 1.在res/drawable文件夹中创建splash_background.xml文件 根据你

  • Android 启动第三方程序的方法总结

    Android 启动第三方程序的方法总结 方法一: Intent intent = new Intent(); intent.setClassName(<package name>, <class name>); startActivity(intent); 方法二: Intent i=new Intent; ComponentName com= new ComponentName(<Package Name> , <Calss Name>); i.setC

  • 完美解决Android App启动页有白屏闪过的问题

    应用启动的时候有短暂的白屏,如图: 可以通过设置theme的方式来解决 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item

  • Android Splash界面白屏、黑屏问题的解决方法

    前言 我相信很多Android开发同学都遇到过这样的需求: 1.实现一个Splash界面,界面上有应用相关的背景图片和一个开始按钮.  2.点击按钮之后进入主页,以后用户再打开应用就不显示这个Splash界面了. 也相信很多同学都遇到了这样的困惑:  •第二次进入应用,尽管你在Splash界面已经直接跳转到首页了,但是还是有个白屏或者黑屏或者带ActionBar的白屏闪现一下. 如果你也遇到这个问题,那就继续阅读这篇文章,我带大家去分析和解决这个问题. 解决方案 这里我们先给出解决方案,然后再具

  • React Native如何消除启动时白屏的方法

    在RN 项目启动之后有一个短暂的白屏,调试阶段白屏的时间较长,大概3-5秒,打正式包后这个白屏时间会大大缩短,大多时候都是一闪而过,所以称之为"闪白". 其实解决的方案也有很多,这里做一个简单的总结. 白屏的原因 在iOS App 中有 启动图(LaunchImage),启动图结束后才会出现上述的闪白,这个过程是 js 解释的过程,JS 解释完毕之前没有内容,所以才表现出白屏,那么解决的方法就是在启动图结束后,JS 解释完成前做一些简单的处理. 解决的常见方案: 启动图结束后通过原生代

  • vue 移动端注入骨架屏的配置方法

    什么是骨架屏? 简单的说,骨架屏就是在页面未渲染完成的时候,先用一些简单的图形大致勾勒出页面的基本轮廓,给用户造成页面正在加载的错觉,待页面渲染完成之后再用页面替换掉骨架屏,从而减少页面白屏的时间,给用户带来更好的体验.本文就是根据 page-skeleton-webpack-plugin 实现的骨架屏的实现,基于的是vue-cli3进行采坑 . 项目开始 安装依赖,package.json 配置vue.config.js 需要在新建vue.config.js,把之前的下载好的page-skel

  • Android简单实现启动画面的方法

    本文实例讲述了Android简单实现启动画面的方法.分享给大家供大家参考,具体如下: 核心代码: package com.demo.app; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; public class SplashActivity extends Activity { private final int S

  • Android编程中activity启动时出现白屏、黑屏问题的解决方法

    本文实例讲述了Android编程中activity启动时出现白屏.黑屏问题的解决方法.分享给大家供大家参考,具体如下: 默认情况下 activity 启动的时候先把屏幕刷成白色,再绘制界面,绘制界面或多或少有点延迟,这段时间中你看到的就是白屏,显然影响用户体验,怎么消除呢? 在 Activity theme 设置style 即可 <style name="AppTheme" parent="android:Theme.Light.NoTitleBar">

  • Android启动画面的实现方法

    本文实例讲述了Android启动画面的实现方法.分享给大家供大家参考.具体分析如下: 在应用程序中经常用到启动画面,会启动一个后台线程为主程序的运行准备资源. Android要实现启动画面可以这样做: 这是splash.xml布局文件的代码: 复制代码 代码如下: <LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_height="fill

  • Android中Splash应用启动白屏问题的解决方法

    不久前项目开始了一段时间了,刚开始怀疑是Android Studio中新加入的Instant Run功能引起的,于是重新打release包后再次运行发现还是有这样的问题,突然想到了上次集成进来了云信,于是猜想可能的确是加入云信后Application里面初始化操作再加上HomeActivity主界面的一些初始化耗时操作引起的,于是我们想办法消灭白屏,有已下两种方案可参看: 1.在启动Activity的界面主题样式上加上这样的item <style name="Theme.Start&quo

随机推荐