电子书阅读器添加启动页面
7971字,阅读需时27分钟

启动APP时,一般都会是一张含有LOGO的图片,这张图片叫做启动图片,显示启动图片的页面称为启动页面,启动页面是为了增强应用程序启动时的用户体验。

制作启动图片

启动图片的尺寸,建议设置为1080*1882或更高尺寸。下图是APP的启动图片,可以将该图片保存到项目的res目录下的drawable目录,图片文件名称为splash.png。

10.png

创建启动页面SplashActivity

在创建启动页面Activity之前,先创建一个包(package),便于管理Activity页面。

创建package

(1)在项目列表内,选择java目录下的com.ebook.reader.ebookreader包。

11.png

(2)右键弹出菜单,在弹出的菜单中选择命令:New->Package。

12.png

(3)在弹出的New Package窗口中,输入Package的名称ui。单击【OK】即可创建ui包。

13.png

创建SplashActivity

(1)在项目列表内,选择java目录下的ui包。

14.png

(2)右键弹出菜单,在弹出的菜单中选择命令:New->Java Class。

15.png

(3)在弹出的Create New Class窗口中,输入Activity的名称SplashActivity,Superclass输入域是设置SplashActivity的父类,父类选择Activity类。单击【OK】即可创建SplashActivity。

16.png

创建SplashActivity的布局文件

布局文件是Activity的界面配置文件,可以布局Activity的用户界面。

(1)在项目列表内,选择res目录下的layout目录。

17.png

(2)右键弹出菜单,在弹出的菜单中选择命令:New->XML->Layout XML File。

18.png

(3)在弹出的New Android Component窗口中,输入Layout的名称activity_splash。单击【Finish】即可创建SplashActivity的布局文件activity_splash.xml。

 19.png

activity_splash.xml的代码如下:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
    </android.support.design.widget.AppBarLayout>
    <include layout="@layout/content_main" />
    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        app:srcCompat="@android:drawable/ic_dialog_email" />
</android.support.design.widget.CoordinatorLayout>

编辑SplashActivity文件

修改SplashActivity.java文件,修改后的代码如下:

activity_splash.xml的代码如下:

package com.ebook.reader.ebookreader.ui;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import com.ebook.reader.ebookreader.MainActivity;
import com.ebook.reader.ebookreader.R;
public class SplashActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        //隐藏状态栏
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
        //隐藏标题栏
        hideStatusBar();
        setContentView(R.layout.activity_splash);
        Thread myThread=new Thread(){//创建子线程
            @Override
            public void run() {
                try{
                    //使程序休眠2秒
                    sleep(2000);
                    //启动MainActivity
                    Intent it=new Intent(getApplicationContext(),MainActivity.class);
                    startActivity(it);
                    //关闭当前活动
                    finish();
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        };
        myThread.start();//启动线程
    }
    //只透明状态栏
    private void hideStatusBar() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            Window window = getWindow();
            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
            // window.setStatusBarColor(Color.TRANSPARENT);
            return;
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
        }
    }
}

编辑配置文件AndroidManifest

修改AndroidManifest配置文件中,修改的后代码如下:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.ebook.reader.ebookreader">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".ui.SplashActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".MainActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme.NoActionBar"
            android:label="@string/app_name">
        </activity>
    </application>
</manifest>

 运行APP

所有代码编写完成后,就可以运行APP,查询运行效果了。如果启动图片的分辨率低于手机的分辨率。启动图片会在手机屏幕居中显示,启动图片显示一段时间后,会自动切换到MainActivity。

20.jpg

我要评论
全部评论
郎宏林
授课老师
授课老师简介
项目经理,系统分析和架构师,从事多年中文信息处理技术。熟悉项目管理、擅长项目需求分析和设计、精通Java、C#、Python等编程语言。
下载APP

手机、电脑同步学

用微信或手机浏览器扫描二维码,即可下载APP。

  • 备案号:鲁ICP备15001146号
  • @1997-2018 潍坊米粒花网络技术有限公司版权所有