Android 的style和theme

例子

<resources>
<style name="CodeFont" parent="@android:style/TextAppearance.Medium">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#00FF00</item>
<item name="android:typeface">monospace</item>
</style>
</resources>

<TextView
style="@style/CodeFont"
android:text="@string/hello" />

style作用

  • 設計與內容分開
  • 可繼承
  • 便于統一風格

書寫方式

  • 關于繼承系統的書寫
<style name="CodeFont" parent="@android:style/TextAppearance.Medium">
...
</style>
  • 關于繼承自定義的書寫
<style name="CodeFont1" parent="CodeFont">
...
</style>

  • 關于繼承系統theme的書寫
<style name="LightThemeSelector" parent="android:Theme.Holo.Light">
...
</style>
<style name="LightThemeSelector" parent="@android:style/Theme.Holo.Light">
...
</style>
  • 關于繼承自定義theme的書寫
<style name="LightThemeSelector" parent="@style/Theme.AppCompat">
...
</style>

style與theme的區別

Theme是針對窗體級別的,改變窗體樣式;
Style是針對窗體元素級別的,改變指定控件或者Layout的樣式

簡單的說就是Theme里面有包含了好多好多Style

android:theme與app:popupTheme

  • android:theme設置是View和子View的主題(API20+)
  • app:popupTheme設置的是該view節點下的view的theme(通俗的說就是類似css選擇器的作用)

常用于Toolbar下

比如

<android.support.v7.widget.Toolbar  
    android:id="@+id/toolbar"  
    android:layout_width="match_parent"  
    android:layout_height="?attr/actionBarSize"  
    android:background="?attr/colorPrimary"  
    android:theme="@style/AppTheme.AppBarOverlay"  
    app:popupTheme="@style/AppTheme.PopupOverlay"/>  

android:theme="@style/AppTheme.AppBarOverlay設置了Toolbar的主題
app:popupTheme="@style/AppTheme.PopupOverlay"設置了Toolbar節點下的view的主題

默認情況下我們使用theme為android:Theme.Holo.Light.DarkActionBar那么ActionBar文字是白的,ActionBar Overflow彈出的是黑底白字,如果需求是白底黑字那么只要設置toolbar的app:popupTheme="ThemeOverlay.AppCompat.Light"


常用的自帶Theme

android:theme=”@android:style/Theme.Dialog” : Activity顯示為對話框模式
android:theme=”@android:style/Theme.NoTitleBar” : 不顯示應用程序標題欄 
android:theme=”@android:style/Theme.NoTitleBar.Fullscreen” : 不顯示應用程序標題欄,并全屏 
android:theme=”Theme.Light “: 背景為白色 
android:theme=”Theme.Light.NoTitleBar” : 白色背景并無標題欄 
android:theme=”Theme.Light.NoTitleBar.Fullscreen” : 白色背景,無標題欄,全屏 
android:theme=”Theme.Black” : 背景黑色 
android:theme=”Theme.Black.NoTitleBar” : 黑色背景并無標題欄 
android:theme=”Theme.Black.NoTitleBar.Fullscreen” : 黑色背景,無標題欄,全屏 
android:theme=”Theme.Wallpaper” : 用系統桌面為應用程序背景 
android:theme=”Theme.Wallpaper.NoTitleBar” : 用系統桌面為應用程序背景,且無標題欄 
android:theme=”Theme.Wallpaper.NoTitleBar.Fullscreen” : 用系統桌面為應用程序背景,無標題欄,全屏 
android:theme=”Theme.Translucent : 透明背景 
android:theme=”Theme.Translucent.NoTitleBar” : 透明背景并無標題 
android:theme=”Theme.Translucent.NoTitleBar.Fullscreen” : 透明背景并無標題,全屏 
android:theme=”Theme.Panel “: 面板風格顯示 
android:theme=”Theme.Light.Panel” : 平板風格顯示

常用的Theme的屬性

名稱 作用
android:windowIsTranslucent 設置透明屬性(防止啟動時候的閃屏)
android:windowBackground 設置背景圖片
android:windowAnimationStyle Activity進入退出動畫
android:windowNoTitle 不顯示標題欄
android:textColor 默認字體顏色
android:windowFullscreen 是否全屏
android:windowIsFloating 是否浮現在activity之上
android:backgroundDimEnabled 背景是否模糊顯示

常用的style元素屬性

非官方

附上一張官方的

官方

裝載自關于Android的style和theme

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,363評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,497評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,305評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,962評論 1 311
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,727評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,193評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,257評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,411評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,945評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,777評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,978評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,519評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,216評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,657評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,960評論 2 373

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,643評論 25 708
  • 1.Style和Theme Android的style分為兩個方面: 1.Theme 是針對窗體級別的,改變窗體樣...
    小飛豬閱讀 2,547評論 0 0
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,483評論 0 17
  • 轉載請說明出處:Android開發細節--查漏補缺(一):UI篇 引言:一開始,先和大家可能從最開始接觸Andro...
    androidjp閱讀 1,121評論 0 9
  • 頭頂藍天 腳踩大地 八百米跳下 絲毫無懼 一身傲骨 渾然正氣 舍身為國 青春散盡 這個英雄 誰可代替
    墨潑閱讀 527評論 0 1