最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android 避免APP啟動(dòng)閃黑屏的解決辦法(Theme和Style)

 更新時(shí)間:2013年07月30日 09:49:35   作者:  
閃黑屏的原因主要是我們啟動(dòng)Activity的時(shí)候,需要跑完onCreate和onResume才會(huì)顯示界面

前幾天Boss就反應(yīng)說(shuō),機(jī)器每次啟動(dòng)程序都會(huì)閃一下黑屏,這個(gè)客戶(hù)不接受。沒(méi)辦法,只能想想怎么解決,最后找到了下面的方法。閃黑屏的原因主要是我們啟動(dòng)Activity的時(shí)候,需要跑完onCreate和onResume才會(huì)顯示界面。也就是說(shuō)需要處理一些數(shù)據(jù)后,才會(huì)顯示。按照這種思路,是不是我把初始化的工作盡量減少就可以避免黑屏?事實(shí)是,就算你onCreate啥都不做,仍然會(huì)閃一下黑屏,因?yàn)槌跏蓟馕鼋缑鏁r(shí)需要一定時(shí)間。下面是解決辦法:
1、自定義Theme

復(fù)制代碼 代碼如下:

設(shè)置背景圖Theme
<style name="Theme.AppStartLoad" parent="android:Theme"> 
    <item name="android:windowBackground">@drawable/ipod_bg</item> 
    <item name="android:windowNoTitle">true</item> 
</style>
//2、設(shè)置透明Theme
<style name="Theme.AppStartLoadTranslucent" parent="android:Theme"> 
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">true</item> 
</style>

上面我定義了兩種Theme,第一種Theme就是設(shè)置一張背景圖。當(dāng)程序啟動(dòng)時(shí),首先顯示這張背景圖,避免出現(xiàn)黑屏。第二種Theme是把樣式設(shè)置為透明,程序啟動(dòng)后不會(huì)黑屏而是整個(gè)透明了,等到界面初始化完才一次性顯示出來(lái)。下面說(shuō)說(shuō)兩種方式的優(yōu)缺點(diǎn):
•Theme1 程序啟動(dòng)快,界面先顯示背景圖,然后再刷新其他界面控件。給人刷新不同步感覺(jué)。
•Theme2 給人程序啟動(dòng)慢感覺(jué),界面一次性刷出來(lái),刷新同步。
 
2、修改AndroidManifest.xml
為了使上面Theme生效,我們需要設(shè)置一些Activity的Theme
復(fù)制代碼 代碼如下:

<application
    android:allowBackup="true"
    android:icon="@drawable/ipod_icon"
    android:label="@string/app_name"
    android:launchMode="singleTask">
<!-- iPod主界面 -->
<activity
    android:name="com.apical.apicalipod.IPodMainActivity"
  <!-- 使用上面定義的樣式 mythou-->
    android:theme="@style/Theme.AppStartLoad"
    android:label="@string/app_name" >
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
//......
</application>

•可以在A(yíng)ctivity里面增加上面自定義的樣式。另外在A(yíng)pplication里面增加也是可以的,而且是全局效果。
•自定義Theme放在 /res/values/styles.xml 里面。如果沒(méi)有這個(gè)文件,自己添加一個(gè)即可。
•如果存在多個(gè)Activity切換,中間也可能會(huì)存在短暫黑屏問(wèn)題。原因也是Activity啟動(dòng)的時(shí)候需要初始化加載數(shù)據(jù),如果想避免這種情況,可以在你切換的Activity里面增加上面的樣式。
•上面兩種樣式都可以避免黑屏??梢詫?shí)際測(cè)試一下你的程序選擇一種效果。
•這個(gè)只是把黑屏避免了,但是如果你程序初始化啟動(dòng)慢,還是會(huì)給人程序啟動(dòng)慢的感覺(jué)。需要自行優(yōu)化程序初始化過(guò)程。
 
3、Theme屬性詳解
復(fù)制代碼 代碼如下:

android:theme="@android:style/Theme.Dialog" //Activity顯示為對(duì)話(huà)框模式
android:theme="@android:style/Theme.NoTitleBar" //不顯示應(yīng)用程序標(biāo)題欄
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" //不顯示應(yīng)用程序標(biāo)題欄,并全屏
android:theme="Theme.Light " //背景為白色
android:theme="Theme.Light.NoTitleBar" //白色背景并無(wú)標(biāo)題欄
android:theme="Theme.Light.NoTitleBar.Fullscreen" //白色背景,無(wú)標(biāo)題欄,全屏
android:theme="Theme.Black" //背景黑色
android:theme="Theme.Black.NoTitleBar" //黑色背景并無(wú)標(biāo)題欄
android:theme="Theme.Black.NoTitleBar.Fullscreen" //黑色背景,無(wú)標(biāo)題欄,全屏
android:theme="Theme.Wallpaper" //用系統(tǒng)桌面為應(yīng)用程序背景
android:theme="Theme.Wallpaper.NoTitleBar" //用系統(tǒng)桌面為應(yīng)用程序背景,且無(wú)標(biāo)題欄
android:theme="Theme.Wallpaper.NoTitleBar.Fullscreen" //用系統(tǒng)桌面為應(yīng)用程序背景,無(wú)標(biāo)題欄,全屏
android:theme="Theme.Translucent" //透明背景
android:theme="Theme.Translucent.NoTitleBar" //透明背景并無(wú)標(biāo)題
android:theme="Theme.Translucent.NoTitleBar.Fullscreen" //透明背景并無(wú)標(biāo)題,全屏
android:theme="Theme.Panel " //面板風(fēng)格顯示
android:theme="Theme.Light.Panel" //平板風(fēng)格顯示

4、Theme和Style
Android里面除了Theme外還有Style,例如下面是Launcher里面配置workspace的一個(gè)Style
復(fù)制代碼 代碼如下:

 <style name="WorkspaceIcon">
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">match_parent</item>
        <item name="android:layout_gravity">center</item>
        <item name="android:gravity">center_horizontal</item>
        <item name="android:singleLine">true</item>
        <item name="android:ellipsize">marquee</item>
        <item name="android:textSize">12sp</item>
        <item name="android:textColor">#FFF</item>
        <item name="android:shadowRadius">2.0</item>
        <item name="android:shadowColor">#B0000000</item>
    </style>

Style可以理解為一組屬性集合,方便不同的View設(shè)置使用,我們?cè)赩iew里面使用Style的時(shí)候,跟使用Theme是一樣的應(yīng)用方法。那么Style和Theme有什么區(qū)別?

下面列出兩者區(qū)別:
•樣式用在單獨(dú)的View,如:Button、TextView等

•主題通過(guò)AndroidManifest.xml中的<application>和<activity>用在整個(gè)應(yīng)用或者某個(gè) Activity,主題對(duì)整個(gè)應(yīng)用或某個(gè)Activity存在全局性影響。

•如果一個(gè)應(yīng)用使用了主題,同時(shí)應(yīng)用下的view也使用了樣式,那么當(dāng)主題與樣式屬性發(fā)生沖突時(shí),樣式的優(yōu)先級(jí)高于主題。

上面就是通過(guò)Theme解決程序啟動(dòng)閃黑屏問(wèn)題,并且講解了Theme和Style,通過(guò)Theme配置,其實(shí)還可以做個(gè)歡迎頁(yè)面。不過(guò)我們都希望程序啟動(dòng)速度越快越好,因此還是需要多多優(yōu)化自己的程序。

相關(guān)文章

  • Android九宮格手勢(shì)密碼代碼設(shè)計(jì)

    Android九宮格手勢(shì)密碼代碼設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了Android九宮格手勢(shì)密碼的代碼設(shè)計(jì)思路,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Android Studio 恢復(fù)小窗口停靠模式(Docked Mode)

    Android Studio 恢復(fù)小窗口??磕J?Docked Mode)

    這篇文章主要介紹了Android Studio 恢復(fù)小窗口停靠模式(Docked Mode),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Android自定義控件eBook實(shí)現(xiàn)翻書(shū)效果實(shí)例詳解

    Android自定義控件eBook實(shí)現(xiàn)翻書(shū)效果實(shí)例詳解

    這篇文章主要介紹了Android自定義控件eBook實(shí)現(xiàn)翻書(shū)效果的方法,結(jié)合實(shí)例形式分析了Android自定義控件實(shí)現(xiàn)翻書(shū)效果的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2016-10-10
  • android實(shí)現(xiàn)簡(jiǎn)單的活動(dòng)轉(zhuǎn)盤(pán)

    android實(shí)現(xiàn)簡(jiǎn)單的活動(dòng)轉(zhuǎn)盤(pán)

    這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)簡(jiǎn)單的活動(dòng)轉(zhuǎn)盤(pán),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • Android 攝像頭高斯模糊的示例代碼

    Android 攝像頭高斯模糊的示例代碼

    本篇文章主要介紹了Android 攝像頭高斯模糊的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Android App 與 U 盤(pán)通信示例詳解

    Android App 與 U 盤(pán)通信示例詳解

    本篇文章主要介紹了Android App 與 U 盤(pán)通信詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Android開(kāi)發(fā)中Activity屬性設(shè)置小結(jié)

    Android開(kāi)發(fā)中Activity屬性設(shè)置小結(jié)

    Android應(yīng)用開(kāi)發(fā)中會(huì)經(jīng)常遇到Activity組件的使用,下面就來(lái)講解下Activity組件。Activity的生命周期、通信方式和IntentFilter等內(nèi)容,并提供了一些日常開(kāi)發(fā)中經(jīng)常用到的關(guān)于A(yíng)ctivity的技巧和方法。通過(guò)本文,你可以進(jìn)一步了接Android中Activity的運(yùn)作方式。
    2015-05-05
  • Flutter UI如何使用Provide實(shí)現(xiàn)主題切換詳解

    Flutter UI如何使用Provide實(shí)現(xiàn)主題切換詳解

    這篇文章主要給大家介紹了關(guān)于Flutter UI如何使用Provide實(shí)現(xiàn)主題切換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Flutter具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Android ListView滾動(dòng)到底后自動(dòng)加載數(shù)據(jù)

    Android ListView滾動(dòng)到底后自動(dòng)加載數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了Android之ListView滾動(dòng)到底后自動(dòng)加載數(shù)據(jù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • 使用ViewPager2實(shí)現(xiàn)簡(jiǎn)易輪播圖效果

    使用ViewPager2實(shí)現(xiàn)簡(jiǎn)易輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了使用ViewPager2實(shí)現(xiàn)簡(jiǎn)易輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09

最新評(píng)論

桂东县| 盐源县| 张家口市| 鄂托克旗| 鄂州市| 潼关县| 通许县| 阿合奇县| 抚宁县| 伊川县| 南乐县| 栾城县| 独山县| 杨浦区| 福建省| 涡阳县| 松江区| 普格县| 大港区| 昆明市| 平利县| 繁昌县| 云安县| 潼南县| 阳信县| 河西区| 大庆市| 扎鲁特旗| 砚山县| 兴城市| 永年县| 承德市| 昭苏县| 封丘县| 南部县| 吉林省| 泽州县| 济阳县| 江永县| 沽源县| 乌拉特中旗|