在 Android 中添加启动画面的正确方法
谷歌此前曾建议不要为 Android 应用程序使用启动画面。这是毫无意义的。然后,当他们发布 Material Design Specifications 时,我们中的一些人注意到 Splash Screen 已更名为 Launch Screen。非常适合展示您的品牌。那么,糟糕的 LaunchScreen 和好的 LaunchScreen 有什么区别呢?
因此,您无疑会问: “创建理想的启动画面有多难?”你可能是对的——我们说的是一个只会显示几秒钟的屏幕(如果是的话)。还有一个屏幕,在消失之前似乎向用户闪现了一个标志。所以不可能那么复杂。不!
分步实施
第 1 步:创建背景 XML
要制作合适的启动画面,您必须首先构建一个背景,以便在屏幕上显示您的品牌徽标。为此,您必须在 res/drawable 文件夹中创建一个 XML 文件。
XML
-
XML
Java
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
public class LaunchScreen extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, LandingActivity.class);
startActivity(intent);
finish();
}
}
XML
第 2 步:为启动屏幕创建专用的自定义主题
下一步是为您的 Splash Activity 设计一个独特的主题。
GeekTip: The theme should be inherited from Theme.AppCompat.NoActionBar, because we don’t want that status bar visible when we are showing Launch.
XML
第 3 步:最后一些代码烹饪
现在是有趣的部分,我们以正确的方式控制启动屏幕!这里最好的部分是,与添加启动画面的传统方法不同,不需要为 SplashActivity 指定内容视图,因为 SplashTheme 将应用于它。因此,您所要做的就是启动 Android 应用程序的 MainActivity,然后使用 finish()函数结束 SplashActivity。这是活动:
Java
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
public class LaunchScreen extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = new Intent(this, LandingActivity.class);
startActivity(intent);
finish();
}
}
第 4 步:最后,设置主题
现在我们已经完成了所有事情,现在唯一剩下的就是为我们之前在第 2 步中创建的活动应用主题,这非常简单,只需弹出Android.Manifest文件并按以下方式对其进行编辑。
XML
就像您以正确的方式拥有启动画面一样,这种方法非常好,即使您的应用程序冷启动,即使这样也没有白色主题,因为 Android 操作系统首先从清单中获取主题,这弥补了飞溅的时间!