深入理解Android樣式和主題之間的區別?

一個完整的APP包含資原始檔和類檔案,資原始檔定義有樣式檔案、佈局檔案、尺寸檔案、字串檔案等等,其中樣式檔案定義在style.xml檔案中,同時style.xml也可以定義主題檔案,那麼Android開發中的樣式檔案和主題檔案有什麼區別呢?那麼可以詳細閱讀釗林分析的這篇深入理解Android樣式和主題之間的區別

深入理解Android樣式和主題之間的區別

工具/原料

Android開發工具:Android Studio或Eclipse

Android測試工具:虛擬裝置或測試手機

一、理解Android樣式資原始檔的使用

本例子中定義TextView控制元件的樣式,在佈局檔案中新增TextView控制元件時,初學者通常喜歡直接宣告控制元件檔案的大小、字型的顏色、文字的型別等,如下圖:

深入理解Android樣式和主題之間的區別

檔案的大小、字型的顏色、文字的型別等,統稱為TextView控制元件的樣式,為了實現樣式的複用,TeachCourse有時候喜歡抽取出來,獨立寫到style.xml檔案中,如下圖:

深入理解Android樣式和主題之間的區別

深入理解Android樣式和主題之間的區別

樣式的繼承方式分為兩種,第一種繼承系統提供的樣式,第二種繼承自己style.xml檔案宣告的另一個樣式,比如:CodeFont樣式繼承Android系統提供的@android:style/TextAppearance.Medium,繼承style.xml檔案宣告的樣式如下圖:

深入理解Android樣式和主題之間的區別

二、理解Android主題資原始檔的使用

主題資原始檔可以定義在style.xml檔案中,也可以定義在theme.xml資原始檔中,通常釗林更推薦定義在theme.xml檔案中,主題應用於ActivityApplication中,詳情可以開啟AndroidManifest.xml檔案檢視,如下圖:

深入理解Android樣式和主題之間的區別

深入理解Android樣式和主題之間的區別

主題的作用改變Activity或Application外在顯示,第一種引用主題的方式如上圖在AndroidManifest.xml檔案中,另外一種引用方式在程式碼中,比如:建立Dialog對話方塊的時候,指定對話方塊主題,如下圖:

深入理解Android樣式和主題之間的區別

開啟Theme_CustomDialog主題資原始檔,檢視主題定義的方式,如下圖:

深入理解Android樣式和主題之間的區別

深入理解Android樣式和主題之間的區別

三、深入理解樣式和主題的區別

樣式和主題定義的xml檔案使用相同的根標籤resources,主題同樣可以繼承系統的和自定義的兩種方式,這一點和樣式一樣,比如:Theme.CustomDialog繼承系統主題@android:style/Theme.Dialog

樣式應用於某個View檢視,主題應用於Activity或Application,同時樣式的引用方式style="@style/CodeFont";主題的引用方式android:theme="@style/AppTheme",這一點需要特別注意

View檢視將只應用那些支援的樣式屬性,並忽略其他屬性;開啟當前電腦SDK路徑,檢視主題的定義方式

深入理解Android樣式和主題之間的區別

注意事項

簡單理解樣式僅作用於控制元件,主題作用於元件

主題屬於特別的樣式,某些樣式任何View不支援,僅以主題形式出現

區別, 檔案, 主題, 樣式, 定義,
相關問題答案