【說在前面的話】
如果沒有特別說明,默認代碼都是添加到Style的子節點中
<style name="styleName" parent="parentStyle">
....//添加到這裏
</style>
- Material Design主題(作爲parentStyle)
@android:style/Theme.Material (黑色主題)
@android:style/Theme.Material.Light (亮色主題)
@android:style/Theme.Material.Light.DarkActionBar
- 兼容的Material主題(作爲parentStyle)
Theme.AppCompat.Light
Theme.AppCompat.Light.DarkActionBar
...
- 沉浸式狀態欄(API 19以上才行)
<!-- 沉浸式狀態欄設置 -->
<item name="android:windowTranslucentStatus">
true
</item>
- 開啓全屏模式
<!-- 全屏模式設置 -->
<item name="android:windowFullscreen">
true
</item>
- 設置爲NoActionBar類型(使用Toolbar的前提也是應用主題爲NoActionBar的)。具體設置代碼爲:
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
- 設置ActionBar的高度
<item name="actionBarSize">@dimen/actionBarSize</item>
- 設置ActionBar/Toolbar的顏色
<item name="colorPrimary">@color/colorPrimary</item>
- 設置Toolbar的菜單彈出樣式(分爲兩步)
1、創建新的style節點,用於定義詳細菜單彈出主題屬性。
<style name="OverflowMenuStyle" parent="@style/Widget.AppCompat.Light.PopupMenu.Overflow">
<!-- 是否覆蓋錨點,默認爲true,即蓋住Toolbar -->
<item name="overlapAnchor">false</item>
<!-- 彈出層背景顏色 -->
<item name="android:popupBackground">
@drawable/menu_bg
</item>
<!-- 彈出層垂直方向上的偏移,即在豎直方向上距離Toolbar的距離,值爲負則會蓋住Toolbar -->
<item name="android:dropDownVerticalOffset">
0dip
</item>
<!-- 彈出層水平方向上的偏移,即距離屏幕左邊的距離,負值會導致右邊出現空隙 -->
<item name="android:dropDownHorizontalOffset">
0dip
</item>
<!-- 設置彈出菜單文字顏色 -->
<item name="android:textColor">
@android:color/white
</item>
</style>
2、在剛剛寫好的style引用應用主題中來。
<!-- ActionBar彈出菜單主題樣式 -->
<item name="actionOverflowMenuStyle">
@style/OverflowMenuStyle
</item>
- Edittext CheckBox等控件獲得焦點(被激活)時的顏色
<item name="colorAccent">@color/colorAccent</item>
<!-- 也是獲得焦點時控件的顏色,此屬性將覆蓋colorAccent -->
<item name="colorControlActivated">
@color/colorControlActivated
</item>
- Edittext CheckBox等控件沒有獲得焦點的顏色
<item name="colorControlNormal">
@color/colorControlNormal
</item>
- 設置正在按下的控件的顏色
<item name="colorControlHighlight">
@color/colorControlHighlight
</item>
- 設置Window/Activity默認背景色or背景圖
<item name="android:windowBackground">
@color/backgroundColor
</item>
- 設置窗體內容背景
<item name="windowContentOverlay">@null</item>
- 設置Activity設置默認背景色爲透明。代碼爲:
<item name="android:windowBackground">
@android:color/transparent
</item>
<item name="android:windowIsTranslucent">true</item>
- 定義狀態欄的顏色
<!-- 狀態欄顏色 -->
<item name="colorPrimaryDark">
@color/colorPrimaryDark
</item>
- 定義NavigationBar的顏色(虛擬導航鍵)
<!-- NavigationBar顏色 -->
<item name="navigationBarColor">
@color/navigationBar
</item>
- 定義Toolbar/ActionBar的title文字顏色
<item name="textColorPrimary">
@color/textColorPrimary
</item>
- 自定義Activity之間的跳轉動畫(分爲兩步)
1、先定義切換style(需要單獨定義Style標籤),這個style分別指定Activity打開時的進入/退出動畫、Activity關閉時的進入/退出動畫。
<style name="ActivityAnimation" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">
@anim/activity_open_enter
</item>
<item name="android:activityOpenExitAnimation">
@anim/activity_open_exit
</item>
<item name="android:activityCloseEnterAnimation">
@anim/activity_close_enter
</item>
<item name="android:activityCloseExitAnimation">
@anim/activity_close_exit
</item>
</style>
2、在應用主題中應用此style。
【特別說明的是:SDK有個默認的切換style,具體引用爲:
@android:style/Animation.Translucent
效果爲:Activity打開時:新界面從右向左進入,舊界面保持不變(類似一張紙覆蓋上來);Activity關閉時:面上的界面類似紙向右抽出,下面的界面保持不變(類似面上的紙被抽走)。】
<item name="android:windowAnimationStyle">
@style/ActivityAnimation
<!-- SDK自帶的切換動畫 -->
<!-- @android:style/Animation.Translucent -->
</item>