EP 20: Custom Launch Screen for Android

Hello, 各位 iT邦帮忙 的粉丝们大家好~~~

本篇是 Re: 从零开始用 Xamarin 技术来复刻过去开发的一个 App: TopStore 系列文的 EP20。

本篇是来介绍一下如何设定 App 的 "自订启动画面" 的唷!

不过其实各位应该会发现,从上一篇 EP19 开始,如果是属於各平台本身的设定,就需在各平台的对应专案上进行设计。

所以如果是针对 "App 自订启动画面" 的部分,就得把 Android、iOS 平台拆开来处理了,这不属於 Xamarin.Forms 能管辖到的范畴。

所以...本篇就先针对 Android 平台要进行的处理来做介绍罗!

Go~~~


Visual Studio 当中透过方案总管在 Android 专案中来新增一个 Activity(活动)。
Android 专案加入新的 Activity(活动) 1

把此新增的 Activity(活动) 命名为 SplashActivity。
Android 专案加入新的 Activity(活动) 2

新增 SplashActivity 完成後会如下图呈现。
Android 专案加入新的 Activity(活动) 3

在 SplashActivity 的类别上,挂上相关的 ActivityAttritube,并且针对 Label、Theme、MainLauncher 与 NoHistory 属性作其设定。
修改 SplashActivity 的类别设定 1

完成後在 SplashActivity 的类别中,覆写 (override) 掉所继承的基底 Activity 类别设计的两个方法: OnResume、OnBackPressed。
修改 SplashActivity 的类别设定 2

回到 SplashActivity 的类别 ActivityAttritube 的 Theme 设定,在其 Android 专案底下的 Resources 找到 value 资料夹当中的 styles.xml。
修改 styles.xml 设定 1

开启 styles.xml 空白专案的原始预设值会是如下图。
修改 styles.xml 设定 2

针对 styles.xml 处理有需要用到的 Theme 设定撰写。
修改 styles.xml 设定 3

在上图的 Theme 设定中有使用到一个 splash_screen 的部分,於是找到 Android 专案 Resources 底下的 drawable 资料夹,并且新增一个 xml 档。
splash_screen 的设计 1

把此 xml 档命名为 splash_screen。
splash_screen 的设计 2

新增完毕後的空白 xml 档。
splash_screen 的设计 3

在 splash_screen.xml 当中撰写设计画面的 XML,注意到其中设计了读取 mipmap 底下的 launcher 图档,并且置中显示。
splash_screen 的设计 4

在 Android 专案的 Resources 的每个 mipmap-***dpi 资料夹中放置一张 launcher 图档。
launcher 图档的设置 1

新增至 Android 专案。(并且确定建置动作为 "AndroidResource")
launcher 图档的设置 2

完成加入。
launcher 图档的设置 3

最後打开 Android 专案底下的 MainActivity,并且注意到其 Activity 的 Attritube 当中的 MainLauncher、Label 属性设定删除。(主要是 MainLauncher 的属性)
Activity 的 Attritube 设定修改 1

MainActivity 的 Activity 的 Attritube 修改完毕。
Activity 的 Attritube 设定修改 2

Android 平台的 App 启动画面撰写完成,执行效果如下。
Android 平台的 App 执行效果

唷~~最基本的效果完成罗!

如果有兴趣也可以自行研究一下背景渐层的效果喔^_<
Android 平台的 App 执行效果

那就到下一篇 EP21 再来继续介绍 iOS 平台的 "App 启动画面" 处理吧!

蹦掰蹦掰~~~


<<:  新新新手阅读 Angular 文件 - Router - pathMatch(2) - Day28

>>:  [Day13] Hoisting

29.移转 Aras PLM大小事-额外编码取号(3)

最後讲一段读取下一码流水号的作法 1.根据前端解析到的选项,每一个属性相加之後,在流水号之前的都是前...

依赖反转原则 Dependency Inversion Principle

在上一篇文章当中我们谈到开放封闭原则,这里我们要来谈谈依赖反转原则 Dependency inver...

Rust-并行&并发(二)

channel 通常channel都是搭配并行使用,没有使用并行就没有使用channel的意义 「别...

前导:乱聊

大家好我是小雨,没想到时隔两年还有机会与铁人们一起磨练~ 刚好最近在「折腾」unRaid,又看到铁人...

树选手1号:decision tree

想要利用接下来的几篇文章把tree-based的模型稍微介绍一下,所有的tree-based模型基本...