中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android Theme 主題總結

發布時間:2020-09-19 11:51:13 來源:網絡 閱讀:4060 作者:一劍圍城 欄目:移動開發

簡介:主題決定了App的展示效果,我們可以為整個Application指定主題,也可以為Activity單獨指定主題,甚至可以為各個控件如Button、TextView指定主題。本文對Android Theme的引用方式,版本分類進行列舉,并對兼容包主題進行了歸類、總結。期望達到對Theme有一個總體的清晰的認識。


一、Theme的來源分類

  1. 系統的主題

  2. 第三方庫的主題

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

  4. 用戶自定義的主題


二、引用方式

  • 系統主題: "@android:style/Theme.Holo.Light"

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

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


三、Theme的版本分類

  1. android:Theme              API 1 開始

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

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

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

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


主題的不同版本:

Theme

Theme 深色主題

Theme.Light 淺色主題

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

簡介:許多主題的最終父類主題


Theme.Holo

Theme.Holo 深色主題

Theme.Holo.Light 淺色主題

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

簡介:android 11 - 13 的默認主題


Theme.DeviceDefault    

Theme.DeviceDefault 深色主題

Theme.DeviceDefault.Light 淺色主題

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

簡介:android 14以上的默認主題,在不同系統版本的設備上可以提供不同的樣式


Theme.Material

Theme.Material 深色主題

Theme.Material.Light 淺色主題

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

簡介:Material Design的樣式


Theme.Leanback 

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

簡介:不知道是什么主題,暫且羅列在此

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

AppCompat_v7兼容包主題細分:

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

  • AlertDialog.AppCompat          對話框深色

  • AlertDialog.AppCompat.Light      對話框淺色

  • Animation.AppCompat.Dialog       帶動畫效果的對話框

  • Animation.AppCompat.DropDownUp

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

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

  • RtlOverlay.Widget.AppCompat

  • RtlUnderlay.Widget.AppCompat

  • TextAppearance.AppCompat        文字樣式相關

  • ThemeOverlay.AppCompat

  • Widget.AppCompat              控件相關的主題

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

關于Theme.ApCompat兼容主題

主題間的繼承關系:(以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在運行時會根據系統的版本選擇對應的父類主題。大于21選擇V21,大于22選擇V22

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

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

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

系統通常預定義的主題樣式

Theme.AppCompat               深色主題

Theme.AppCompat.NoActionBar      沒有ActionBar

Theme.AppCompat.Dialog          對話框適用

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

Theme.AppCompat.Dialog.MinWidth    對話框適用(根據內容決定寬度)

Theme.AppCompat.DialogWhenLarge    充滿屏幕(繼承自Theme.AppCompat,但沒有擴展)

Theme.AppCompat.CompactMenu      看名字是用于Menu菜單。未驗證

其他主題系統默認都會有上述幾種類型的子主題,以此類推就好。

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

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

常見的樣式屬性摘記

android:windowFullscreen     隱藏狀態欄

windowActionBar         是否顯示ActionBar

windowNoTitle          是否顯示TitleBar,經常和windowActionBar一起使用


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿拉尔市| 新营市| 田林县| 五指山市| 泰来县| 兴安盟| 册亨县| 松江区| 新津县| 阿城市| 滦南县| 日照市| 边坝县| 隆林| 绍兴市| 太康县| 山丹县| 嘉兴市| 凤台县| 乌兰浩特市| 故城县| 闻喜县| 堆龙德庆县| 南投县| 乡宁县| 花莲县| 册亨县| 清流县| 土默特右旗| 南康市| 同德县| 陆川县| 南通市| 务川| 腾冲县| 武汉市| 临泽县| 新田县| 石嘴山市| 赤壁市| 紫云|