本文和大家分享的主要是android開發主題樣式相關內容,一起來看看吧,希望對大家學習和使用這部分內容有所幫助。
app如何設置主題
1. 在res/values/styles.xml文件中添加代碼:
<resources>
<style name="AppBaseTheme" parent="android:Theme"></style>
<style name="AppTheme" parent="AppBaseTheme"></style>
</resources>
2. 在res/values-v11/styles.xml和res/values-v14/styles.xml文件中添加代碼:
<resources>
<style name="AppTheme" parent="AppBaseTheme"></style>
</resources>
1. 在AndroidManifest.xml設置
application標籤中的@style/AppTheme引用自哪個文件夾中的styles.xml,這是根據運行此程序的手機系統來決定的,如果手機系統的API版本是11以上就是v11/styles.xml,API版本是14以上就是v14/styles.xml,以此類推。我們可以通過修改AppBaseTheme的父主題來實現我們需要的樣式,此文章主要就是來討論這個主題如何修改。
主題的來源
· Android系統自帶的
· 來自兼容包的(比如v7兼容包)
· 自定義的主題
使用android系統中自帶的主題要加上"android:",如:android:Theme.Black
使用v7兼容包中的主題不需要前綴,如:Theme.AppCompat
主題的樣式
系統自帶主題:
API 1:
android:Theme 根主題
android:Theme.Black 背景黑色
android:Theme.Light 背景白色
android:Theme.Wallpaper 以桌面牆紙爲背景
android:Theme.Translucent 透明背景
android:Theme.Panel 平板風格
android:Theme.Dialog 對話框風格
API 11:
android:Theme.Holo Holo根主題
android:Theme.Holo.Black Holo黑主題
android:Theme.Holo.Light Holo白主題
API 14:
android:Theme.DeviceDefault 設備默認根主題
android:Theme.DeviceDefault.Black 設備默認黑主題
android:Theme.DeviceDefault.Light 設備默認白主題
API 21: (網上常說的 Android Material
Design 就是要用這種主題)
android:Theme.Material Material根主題
android:Theme.Material.Light Material白主題
兼容包v7中帶的主題:
Theme.AppCompat 兼容主題的根主題
Theme.AppCompat.Black 兼容主題的黑色主題
Theme.AppCompat.Light 兼容主題的白色主題
注意:
1.Theme.AppCompat主題是兼容主題的意思是說如果運行程序的手機API是21則就相當於是Material主題,如果運行程序的手機API是11則就相當於是Holo主題,以此類推。
2.兼容包v7會被Google公司不斷升級:
比如 appcompat-v7-21.0 表示升級到向 API
21 兼容
比如 appcompat-v7-23.2 表示升級到向 API
23 兼容
3.所有能應用於應用程序主題都是以“Theme.”開頭
不是以“Theme.”開頭的就不是應用程序主題,而是用於某些局部控件
比如“ThemeOverlay”主題,可用於 Toolbar 控件。
比如“TextAppearance”主題,可用於設置文字外觀。
比如在v7中有很多以“Base”開頭的主題,是一些父主題,不建議直接使用。
報錯原因:
· 需要提升最低API版本
· 需要更高版本的SDK
· 兼容包版本不對
· 需要手動指定寬高
· 繼承錯誤
比如窗體必須繼承AppCompactActivity,或者要繼承ActionBarActiivty,或者要繼承FragmentActivity
更多主題:
以下都是指“包含”,比如包含“Dialog”表示對話框風格
比如Theme.Dialog、Theme.Holo.Dialog、Theme.Material.Dialog、Theme.AppCompat.Dialog都是對話框風格
Black 黑色風格
Light 光明風格
Dark 黑暗風格
DayNight 白晝風格
Wallpaper 牆紙爲背景
Translucent 透明背景
Panel 平板風格
Dialog 對話框風格
NoTitleBar 沒有TitleBar
NoActionBar 沒有ActionBar
Fullscreen 全屏風格
MinWidth 對話框或者ActionBar的寬度根據內容變化,而不是充滿全屏
WhenLarge 對話框充滿全屏
TranslucentDecor 半透明風格
NoDisplay 不顯示,也就是隱藏了
WithActionBar 在舊版主題上顯示ActionBar