【android開發】styles.xml常用的設置屬性彙總

【說在前面的話】
如果沒有特別說明,默認代碼都是添加到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>
發佈了38 篇原創文章 · 獲贊 38 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章