Android?app啟動(dòng)圖適配方法實(shí)例
前言
app啟動(dòng)后的白屏問題,默認(rèn)都是在splash頁面加主題配置,主題配置一個(gè)背景來達(dá)到用戶點(diǎn)擊app圖標(biāo)就立馬啟動(dòng)app的假象,大多情況下,使用背景單一的圖片作為啟動(dòng)圖,我們在設(shè)置背景顏色,就能適配的很不錯(cuò)了(背景顏色+logo圖片的模式)。但是當(dāng)啟動(dòng)圖不再單一,而且復(fù)雜的圖形時(shí)候,適配就成大問題了,下面介紹我的方法:
1、設(shè)置splash主題
<style name="MySplashTheme" parent="@android:style/Theme.Holo.NoActionBar">
<item name="android:windowBackground">@drawable/splah_bg</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowBackground">@color/white</item>
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
</style>
2、 splash_bg 設(shè)置:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/wecome4"
android:dither="true"
android:filter="true"
android:antialias="true"
android:gravity="fill">
</bitmap>
這里面的gravity = fill是設(shè)置圖片拉伸的(可以用.9圖片)
3、splash布局文件設(shè)置:
<ImageView
android:id="@+id/iv_bg"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@drawable/splah_bg" />
注意這里的圖片設(shè)置用 backgroup,而不是src。然后背景用上面的drawable文件,而不是直接使用圖片,不然主題到splash布局切換的時(shí)候,圖片會(huì)閃動(dòng)。
注意這里的圖片設(shè)置用 backgroup,而不是src。然后背景用上面的drawable文件,而不是直接使用圖片,不然主題到splash布局切換的時(shí)候,圖片會(huì)閃動(dòng)。
注意這里的圖片設(shè)置用 backgroup,而不是src。然后背景用上面的drawable文件,而不是直接使用圖片,不然主題到splash布局切換的時(shí)候,圖片會(huì)閃動(dòng)。
上面說的是不能設(shè)置背景顏色的,如果啟動(dòng)圖背景是純色的,比如天貓那種,就一白色加一個(gè)logo,那種主題設(shè)置就不一樣了,請用下面這種模式
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="#FFFFFF" />
</shape>
</item>
<item >
<bitmap
android:gravity="fill"
android:src="@drawable/wecome4"
android:dither="true"
android:filter="true"
android:antialias="true"
/>
</item>
</layer-list>
附問題:項(xiàng)目啟動(dòng)時(shí),會(huì)有白屏現(xiàn)象(在點(diǎn)擊 應(yīng)用圖標(biāo)到看到啟動(dòng)頁之間)。
處理辦法:
一:我們盡量減少的Application類里面的耗時(shí)操作
二:設(shè)置項(xiàng)目啟動(dòng)頁的style類型為透明的
處理之后的現(xiàn)象:看不到白屏,但是點(diǎn)擊應(yīng)用圖標(biāo)之后,會(huì)靜止一段時(shí)間(沒有任何反應(yīng)),過一會(huì)兒,才會(huì)顯示啟動(dòng)頁
三:設(shè)置項(xiàng)目啟動(dòng)頁的style類型為指定圖片A(在SplashActivity里面 ,就不用設(shè)置setcontentView()了)
處理之后的現(xiàn)象:看不到白屏,但是點(diǎn)擊應(yīng)用圖標(biāo)之后,會(huì)顯示剛剛設(shè)置的style的圖片,過一會(huì)兒,才會(huì)顯示啟動(dòng)頁
這種做法遇到的問題:
如果 這個(gè)圖片A的尺寸較小,那么的大尺寸的手機(jī)上,啟動(dòng)頁會(huì)看到圖片A的周邊是有空白了。
這個(gè)問題處理辦法:
1.如果 這個(gè)圖片A的背景 有著明顯的規(guī)律(這個(gè)比較巧合,很難遇到),比如:從上到下有漸變時(shí),可以使用layer-list里的shape的gradient
2.在UI設(shè)計(jì)圖片A的時(shí)候,將這個(gè)圖片A的重要信息(應(yīng)用的名稱,icon等等)之外的其他背景 用透明表示,這樣就可以使用layer-list里的shape了,將這個(gè)圖片A的其它地方用shape的顏色來填充了,就不會(huì)看到周邊空白的現(xiàn)象了。

四:設(shè)置項(xiàng)目啟動(dòng)頁,在SplashActivity里面 ,用setcontentView(),設(shè)置xml布局里面的ImageView的scaleType為能自動(dòng)填充滿界面布局的類型:centerCrop(注意:這個(gè)類型會(huì)自動(dòng)剪切掉圖片A的周圍,注意:的重要信息不要顯示在圖片的周邊,盡量顯示在圖片的中間)
總結(jié)
到此這篇關(guān)于Android app啟動(dòng)圖適配方法的文章就介紹到這了,更多相關(guān)Android app啟動(dòng)圖適配內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Android時(shí)分秒計(jì)時(shí)器的兩種實(shí)現(xiàn)方法
這篇文章主要介紹了Android時(shí)分秒計(jì)時(shí)器的兩種實(shí)現(xiàn)方法,分別是Chronometer控件和handler+timer+timerTask方式,非常不錯(cuò),感興趣的朋友一起看下吧2016-08-08
Android使用Jetpack WindowManager開發(fā)可折疊設(shè)備(過程分享)
這篇文章主要介紹了Android使用Jetpack WindowManager開發(fā)可折疊設(shè)備,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-11-11
Android 實(shí)現(xiàn)電話攔截及攔截提示音功能的開發(fā)
本文主要介紹Android 實(shí)現(xiàn)電話攔截和攔截提示音功能的開發(fā),這里提供實(shí)現(xiàn)代碼和詳細(xì)講解,有需要的小伙伴可以參考下2016-08-08
Android 中SwipeRefreshLayout與ViewPager滑動(dòng)事件沖突解決方法
這篇文章主要介紹了Android 中SwipeRefreshLayout與ViewPager滑動(dòng)事件沖突解決方法的相關(guān)資料,需要的朋友可以參考下2017-04-04
Android編程實(shí)現(xiàn)二維碼的生成與解析
這篇文章主要介紹了Android編程實(shí)現(xiàn)二維碼的生成與解析方法,結(jié)合實(shí)例分析了Android二維碼的生成與讀取二維碼的相關(guān)技巧,并提供了二維碼jar包供讀者下載,需要的朋友可以參考下2015-11-11

