AndroidTheme主題總結(jié)-創(chuàng)新互聯(lián)

簡(jiǎn)介:主題決定了App的展示效果,我們可以為整個(gè)Application指定主題,也可以為Activity單獨(dú)指定主題,甚至可以為各個(gè)控件如Button、TextView指定主題。本文對(duì)Android Theme的引用方式,版本分類(lèi)進(jìn)行列舉,并對(duì)兼容包主題進(jìn)行了歸類(lèi)、總結(jié)。期望達(dá)到對(duì)Theme有一個(gè)總體的清晰的認(rèn)識(shí)。

創(chuàng)新互聯(lián)公司于2013年成立,先為永濟(jì)等服務(wù)建站,永濟(jì)等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為永濟(jì)企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

一、Theme的來(lái)源分類(lèi)

  1. 系統(tǒng)的主題

  2. 第三方庫(kù)的主題

  3. 兼容包如support_v7.jar的主題

  4. 用戶(hù)自定義的主題

二、引用方式

  • 系統(tǒng)主題: "@android:style/Theme.Holo.Light"

  • 兼容包:  AndroidManifests.xml中"@style/Theme.Appcompat",其他地方使用“Theme.Appcompat”即可

  • 自定義主題:"@style/AppTheme"

三、Theme的版本分類(lèi)

  1. android:Theme        API 1 開(kāi)始

  2. android:Theme.Holo      API 11(android3.0) 開(kāi)始

  3. android:Theme.DeviceDefault   API 14(android4.0) 開(kāi)始

  4. android:Theme.Material     API 21(android5.0) 開(kāi)始

  5. Theme.AppCompat       兼容包AppCompat_v7中的主題

主題的不同版本:

Theme

Theme 深色主題

Theme.Light 淺色主題

位置:sdk/platforms/android-25/data/res/values/themes.xml

簡(jiǎn)介:許多主題的最終父類(lèi)主題

Theme.Holo

Theme.Holo 深色主題

Theme.Holo.Light 淺色主題

位置:sdk/platforms/android-25/data/res/values/themes_holo.xml

簡(jiǎn)介:android 11 - 13 的默認(rèn)主題

Theme.DeviceDefault

Theme.DeviceDefault 深色主題

Theme.DeviceDefault.Light 淺色主題

位置:sdk/platforms/android-25/data/res/values/themes_device_defaults.xml

簡(jiǎn)介:android 14以上的默認(rèn)主題,在不同系統(tǒng)版本的設(shè)備上可以提供不同的樣式

Theme.Material

Theme.Material 深色主題

Theme.Material.Light 淺色主題

位置:sdk/platforms/android-25/data/res/values/themes_material.xml

簡(jiǎn)介:Material Design的樣式

Theme.Leanback

位置:sdk/platforms/android-25/data/res/values/themes_leanback.xml

簡(jiǎn)介:不知道是什么主題,暫且羅列在此

-------------------------------------------------------------------------------------------

AppCompat_v7兼容包主題細(xì)分:

(以'com.android.support:appcompat-v7:25.1.0'為例:)

  • AlertDialog.AppCompat      對(duì)話(huà)框深色

  • AlertDialog.AppCompat.Light    對(duì)話(huà)框淺色

  • Animation.AppCompat.Dialog    帶動(dòng)畫(huà)效果的對(duì)話(huà)框

  • Animation.AppCompat.DropDownUp

  • Theme.AppCompat        作用于Activity層面以上的主題

  • Base、Platform        作為父類(lèi)被繼承的,一般不直接使用

  • RtlOverlay.Widget.AppCompat

  • RtlUnderlay.Widget.AppCompat

  • TextAppearance.AppCompat     文字樣式相關(guān)

  • ThemeOverlay.AppCompat

  • Widget.AppCompat        控件相關(guān)的主題

-------------------------------------------------------------------------------------------

關(guān)于Theme.ApCompat兼容主題

主題間的繼承關(guān)系:(以Theme.AppCompat為例)

Theme.AppCompat ——> Base.Theme.AppCompat

Base.Theme.AppCompat ——> Base.V*.Theme.AppCompat (*可能是7、21、23等)

Base.V*.Theme.AppCompat ——> Platform.AppCompat

Platform.AppCompat ——> android:Theme

其中第二步:版本25.1.0有四種選擇:Base、Base.V21、Base.V22、Base.V23。(更早的版本還有V7、V11等)

兼容:App在運(yùn)行時(shí)會(huì)根據(jù)系統(tǒng)的版本選擇對(duì)應(yīng)的父類(lèi)主題。大于21選擇V21,大于22選擇V22

例如:使用DatePicker、CalendarView等在不同版本手機(jī)上安裝會(huì)展示不同的樣式,在4.2的手機(jī)上展示holo的樣式,在5.1的手機(jī)上展示material樣式。

App的UI一致性:不少App為了保證在不同手機(jī)上的UI一致性,會(huì)給控件顯式指定樣式,為了向下兼容,通常會(huì)使用holo樣式,并做一下調(diào)整。

-------------------------------------------------------------------------------------------

系統(tǒng)通常預(yù)定義的主題樣式

Theme.AppCompat        深色主題

Theme.AppCompat.NoActionBar      沒(méi)有ActionBar

Theme.AppCompat.Dialog      對(duì)話(huà)框適用

Theme.AppCompat.Dialog.Alert    警告框適用(根據(jù)屏幕決定寬度)

Theme.AppCompat.Dialog.MinWidth   對(duì)話(huà)框適用(根據(jù)內(nèi)容決定寬度)

Theme.AppCompat.DialogWhenLarge   充滿(mǎn)屏幕(繼承自Theme.AppCompat,但沒(méi)有擴(kuò)展)

Theme.AppCompat.CompactMenu      看名字是用于Menu菜單。未驗(yàn)證

其他主題系統(tǒng)默認(rèn)都會(huì)有上述幾種類(lèi)型的子主題,以此類(lèi)推就好。

例如:淺色主題只需要將Theme.AppCompat 替換成 Theme.AppCompat.Light即可

-------------------------------------------------------------------------------------------

常見(jiàn)的樣式屬性摘記

android:windowFullscreen   隱藏狀態(tài)欄

windowActionBar         是否顯示ActionBar

windowNoTitle          是否顯示TitleBar,經(jīng)常和windowActionBar一起使用

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

分享題目:AndroidTheme主題總結(jié)-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://muchs.cn/article6/cdjcog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、靜態(tài)網(wǎng)站、App設(shè)計(jì)、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管