一個完整的APP包含資原始檔和類檔案,資原始檔定義有樣式檔案、佈局檔案、尺寸檔案、字串檔案等等,其中樣式檔案定義在style.xml檔案中,同時style.xml也可以定義主題檔案,那麼Android開發中的樣式檔案和主題檔案有什麼區別呢?那麼可以詳細閱讀釗林分析的這篇深入理解Android樣式和主題之間的區別
工具/原料
Android開發工具:Android Studio或Eclipse
Android測試工具:虛擬裝置或測試手機
一、理解Android樣式資原始檔的使用
本例子中定義TextView控制元件的樣式,在佈局檔案中新增TextView控制元件時,初學者通常喜歡直接宣告控制元件檔案的大小、字型的顏色、文字的型別等,如下圖:
檔案的大小、字型的顏色、文字的型別等,統稱為TextView控制元件的樣式,為了實現樣式的複用,TeachCourse有時候喜歡抽取出來,獨立寫到style.xml檔案中,如下圖:
樣式的繼承方式分為兩種,第一種繼承系統提供的樣式,第二種繼承自己style.xml檔案宣告的另一個樣式,比如:CodeFont樣式繼承Android系統提供的@android:style/TextAppearance.Medium,繼承style.xml檔案宣告的樣式如下圖:
二、理解Android主題資原始檔的使用
主題資原始檔可以定義在style.xml檔案中,也可以定義在theme.xml資原始檔中,通常釗林更推薦定義在theme.xml檔案中,主題應用於Activity或Application中,詳情可以開啟AndroidManifest.xml檔案檢視,如下圖:
主題的作用改變Activity或Application外在顯示,第一種引用主題的方式如上圖在AndroidManifest.xml檔案中,另外一種引用方式在程式碼中,比如:建立Dialog對話方塊的時候,指定對話方塊主題,如下圖:
開啟Theme_CustomDialog主題資原始檔,檢視主題定義的方式,如下圖:
三、深入理解樣式和主題的區別
樣式和主題定義的xml檔案使用相同的根標籤resources,主題同樣可以繼承系統的和自定義的兩種方式,這一點和樣式一樣,比如:Theme.CustomDialog繼承系統主題@android:style/Theme.Dialog
樣式應用於某個View檢視,主題應用於Activity或Application,同時樣式的引用方式style="@style/CodeFont";主題的引用方式android:theme="@style/AppTheme",這一點需要特別注意
View檢視將只應用那些支援的樣式屬性,並忽略其他屬性;開啟當前電腦SDK路徑,檢視主題的定義方式
注意事項
簡單理解樣式僅作用於控制元件,主題作用於元件
主題屬於特別的樣式,某些樣式任何View不支援,僅以主題形式出現