android开发启动画面,Android开发笔记——如何正确实现App启动页
啟動頁在當前的Android APP中有著廣泛的使用,在Material Design規(guī)范出來之前,Android官方是不推薦使用啟動頁的,理由是讓用戶在啟動APP后干等是一種浪費時間的行為。Material Design 則制定了LaunchScreen 規(guī)范,用于在APP啟動的時候合理的利用從啟動到實際渲染出主界面之間這段時間,顯示一個LauncherScreen用來展示一些品牌元素等信息,避免顯示一個枯燥的空白界面。
APP啟動過程
APP的啟動過程可以參考這里。這里主要簡單介紹下APP冷啟動的過程。
APP冷啟動開始時,系統(tǒng)會做以下三個任務:
加載并啟動app
展示一個空白Window
創(chuàng)建app進程
在上面的第二個步驟中,WindowManager 使用Activity主題中定義的背景和狀態(tài)欄顏色的屬性來繪制一個臨時的展示UI。
當APP進程創(chuàng)建后,APP進程會做以下幾件事:
創(chuàng)建app對象
創(chuàng)建app的主進程
創(chuàng)建MainActivity
inflating views
執(zhí)行Layout過程
執(zhí)行界面繪制
當首次繪制完成后,系統(tǒng)會將之前展示的空白window移除,并展示創(chuàng)建好的MainActivity。在某些大型APP中,這個過程可能會有1-5秒。
啟動頁實現(xiàn)原理
從上面的啟動分析可以知道,WindowManager是根據(jù)Activity主題中定義的背景等屬性來創(chuàng)建一個臨時preview window的。我們在Activity的主題style中設置windowBackground屬性來設置這個preview window的顯示內(nèi)容。使用layer-list可以創(chuàng)建一個包含logo的drawable對象:
android:src="@drawable/logo"
android:gravity="center"/>
創(chuàng)建一個自定義Theme:
true
@null
true
實現(xiàn)方式
谷歌官方推薦的啟動頁實現(xiàn)方式是在將LauncherScreen和MainActivity合二為一。首先創(chuàng)建按照之前說的原理創(chuàng)建一個啟動頁Theme,并在Manifest中將其作為MainActivity的默認Theme。然后在MainActivity的onCreate方法中,在onCreate()和setContentView()之前使用setTheme方法,重新設置主界面的主題。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// Make sure this is before calling super.onCreate
setTheme(R.style.Theme_MyApp);
super.onCreate(savedInstanceState);
// ...
}
}
這樣做的好處有以下幾點:
不需要額外的Activity實現(xiàn)啟動頁
沒有overdraw的問題,因為重新設置主題后,之前的繪畫層也一并移除了。
當然,如果你需要根據(jù)schema或者其他方式從啟動頁路由到不同的界面的功能,使用單獨的啟動頁Activity也是一個不錯的選擇。
總結(jié)
以上是生活随笔為你收集整理的android开发启动画面,Android开发笔记——如何正确实现App启动页的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言图片见水印,[求助]C语言 bmp
- 下一篇: android win7 共享网络打印机