Android主題初探

主題

可以把主題看作是樣式的加強版本。同樣是定義一套公共主題屬性,樣式屬性需要逐個添加,而主題屬性則會自動應用於整個應用中。

默認主題

新建的Android項目都自帶默認主題,找到並打開AndroidManifest.xml文件可以看到application標籤下的theme屬性,如下圖所示:
這裏寫圖片描述
theme屬性指向的主題叫AppTheme,定義在styles.xml文件中。
在styles.xml文件中查看AppTheme主題
這裏寫圖片描述
AppCompat庫自帶三大主題:

  • Theme.AppCompat :深色主題
  • Theme.AppCompat.Light:淺色主題
  • Theme.AppCompat.Light.DarkActionBar:帶深色工具欄的淺色主題

上圖中的三個主題屬性適用於所有使用同一主題的組件:

  • cololrPrimary:主要用來設置工具欄背景色,由於應用名稱是顯示在工具欄上的,也可以成爲應用品牌色。
  • colorPrimaryDark:用於屏幕頂部的狀態欄(注意只有Lollipop以後的系統支持狀態欄主題色,對於之前的系統,無論指定什麼主題顏色,狀態欄都是不變的黑色)
  • colorAccent:主要用於給EditText這樣的組件着色

覆蓋主題屬性

想要更改應用程序中的某個控件的屬性,首先需要確定這個屬性名稱是什麼,對於一些不確定的屬性名,需要採取向上追溯的方法,找出主題繼承的源頭,然後憑感覺挑選一個驗證猜想。比如在styles文件中選擇Theme.AppCompat.Light.DarkActionBar,ctrl+B跳轉到定義的文件,依次查找父主題,直到查找到目標屬性。還有一點需要注意的是,找到屬性名之後在引用的時候需要添加android:前綴,因爲這些主題包含在Android操作系統中。
這裏寫圖片描述
有一些屬性名比如textColor,textSize,這些都知道的就不需要再尋找。只需要尋找那些我們不確定的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章