android看黑白电子书软件,如何优雅解决App启动黑白屏
為什么會有黑白屏
在桌面點擊應用圖標后,在app進程沒有創建的情況下,需要時間創建app進程,初始化資源,以及啟動首頁Activity的(這里討論的首頁是指AndroidManifest里面標志的啟動頁),這就意味點擊圖標不能馬上看到啟動頁。為了不讓用戶有卡頓的感覺,谷歌有了Preview Window,在啟動頁沒有繪制完成時,會先初始化一個Window,我們通??吹降暮谄粱虬灼?#xff0c;就是這個預覽窗口。
怎么知道是黑屏還是白屏?
黑白屏是預加載的窗口,這個窗口的一些屬性可以在theme里更改。新建一個項目,會在AndroidManifest的application所屬標簽里面的內容看到android:theme=”@style/AppTheme”,這個是默認的theme。查看這個AppTheme,找到name=”android:windowBackground”這個屬性,查看屬性下的內容,就能知道是黑屏還是白屏,這個屬性就是設置預覽窗口的背景。無論是黑屏還是白屏,給用戶的體驗都不好,所以就有了把背景設為透明或者用一張圖片來作為啟動背景的解決辦法。這些只是很基本的解決辦法,而且存在一定的弊端,既然我們要讓用戶體驗更好,就應該處理得更加優雅一些。
如何優雅的解決黑白屏
解決黑白屏,需要和啟動頁結合起來?,F在的APP基本上都有閃屏頁,有些是為了加載廣告,有些是為了通過閃屏頁初始化App的一些資源,本篇文章就討論有閃屏的啟動頁,以網易云音樂對預加載窗口和閃屏頁的處理來舉例。來看看網易云的預加載頁和啟動頁。
第一張是預加載頁,第二張是閃屏頁,閃屏頁只比預加載頁多了底部的圖標和網易云音樂這四個字(其實是一整體,一張圖片),而且給人的感覺是一直是預加載頁,不過底部的圖標和文字會慢慢出現,這樣的處理比單獨的顯示圖片或者設置為透明更讓人能夠接受。下面我們就來看看代碼。
styles文件自定義Theme
@drawable/launch_layout
true
true
@null
launch_layout,代碼中的top_img,是“音樂的力量”四個字的圖片。
SplashActivity的布局文件為
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/bottom_imag"//bottom_imag為底部的圖標和文字
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="50dp"
/>
最后在AndroidManifest里將lanuchTheme設置給閃屏頁(下文用SplashActivity表示),就大功告成了。
寫以上布局需要注意:由于沒有給SplashActivity的布局設置背景色,也就是透明色,而兩個頁面的區別只有底部加了一張圖片,所以在SplashActivity的布局中就不需要再把預加載頁的內容再寫一次。
總結
黑白屏的解決是為了讓用戶覺得點擊圖標就得到了響應,App啟動很順暢,這個過程能在視覺上給人美感,那就更好了。不同的應用場景可以有不同的解決辦法,不一定是有閃屏頁,也不一定要和網易云音樂一樣,也可以在閃屏頁寫一個動畫或其它效果。想弄懂黑白屏,可以先做做以下功課
本篇網易云音樂解決方案的原理
明白為什么自定義theme,并且單獨設置給Activity
了解layer_list可以做什么
弄明白這幾個問題,解決黑白屏就不是什么難事了。
作者:honey餅
鏈接:https://juejin.im/post/5e0ac535e51d4540e63d811b
總結
以上是生活随笔為你收集整理的android看黑白电子书软件,如何优雅解决App启动黑白屏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows 10 安装使用Tenso
- 下一篇: 微信视频号100w播放收入1000+的变