当前位置:天才代写 > tutorial > 安卓教程 > 总结一下Android中主题(Theme)的正确玩法

总结一下Android中主题(Theme)的正确玩法

2021-03-03 12:16 星期三 所属: 安卓教程 浏览:44

在AndroidManifest.xml文件中有<application android:theme=”@style/AppTheme”>,在其中的@style/AppTheme是引入的res/values/styles.xml 中的主题风格款式,也是有可能是引入的 res/values-v11/styles.xml 或是 res/values-v14/styles.xml,它是依据运作此程序流程的手机的系统来决策的,假如手机的系统的API版本号是11之上便是v11/styles.xml,依此类推。在values/styles.xml中你能发觉AppTheme的主题风格款式也是承继自AppBaseTheme,而AppBaseTheme的父主题风格就各不相同了,你也能够从这一部位来自身改动主题风格,此文章内容关键便是来探讨这一主题风格如何修改。

必须留意的是,作为新手或是专业来科学研究主题风格(Theme),你最好删掉values-v11和values-v14及其values-vXX,以防被这种物品所影响。

 

主题风格的来源于有三个:

1) 来源于Android系统软件内置的

2) 来源于兼容包的(例如v7兼容包)

3) 你自己写一个主题风格

这儿关键讨论前二者,自身写主题风格不讨论。

 

应用android系统软件中内置的主题风格要再加上“android:”,如:android:Theme.Black
应用v7兼容包中的主题风格不用作为前缀,立即:Theme.AppCompat

 

在Android Studio中撰写主题风格时都是会有全自动提醒,而在Eclipse不容易有全自动提醒


解决方案是不必写“android:Theme.Black”,只是写“@android:style/Theme.Black”那样便会有提醒
不必写“Theme.AppCompat”,只是写“@style/Theme.AppCompat”

由于 style(@android:style/Theme.Black) 与 theme(android:Theme.Black) 在重任上還是有差别的,因此 在eclipse中撰写时为了更好地出現全自动提醒,能够写“@android:style/Theme.Black”,可是写完了以后,还记得手动式的改成“android:Theme.Black”

 

如今看一下有一些哪些主题风格

系统软件内置主题风格:
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:
Theme.DeviceDefault 机器设备默认设置根主题风格
Theme.DeviceDefault.Black 机器设备默认设置黑主题风格
Theme.DeviceDefault.Light 机器设备默认设置白主题风格

API 21: (在网上常说的 Android Material Design 便是要用这类主题风格)
Theme.Material Material根主题风格
Theme.Material.Light Material白主题风格

兼容包v7含有的主题风格:
Theme.AppCompat 兼容主题风格的根主题风格
Theme.AppCompat.Black 兼容主题风格的黑色主题
Theme.AppCompat.Light 兼容主题风格的乳白色主题风格

 

Theme.AppCompat主题风格是兼容主题风格,代表什么意思呢?

含意就是假如运作程序流程的手机上API是21则就等同于是Material主题风格,假如运作程序流程的手机上API是11则就等同于是Holo主题风格,依此类推

 

兼容包v7会被Google企业持续升級:
例如 appcompat-v7-21.0 表明升級到向 API 21 兼容
例如 appcompat-v7-23.2 表明升級到向 API 23 兼容


在eclipse中只有见到 appcompat_v7 后边沒有跟API的版本信息,如何识别呢?
能够在eclipse中进行v7新项目的res文件夹,查询是否有values-21、values-23那样的文件夹名称,较大 数据便是API版本信息了。


因此 一样是v7兼容包,会出现API版本信息不一样的差别,要留意。

 

全部能运用于应用软件主题风格全是以“Theme.”开始
并不是以“Theme.”开始的就并不是应用软件主题风格,只是用以一些部分控制
例如“ThemeOverlay”主题风格,可用以 Toolbar 控制,这儿不做详细分析了。
例如“TextAppearance”主题风格,可用以设定文本外型,这儿不做详细分析了。
例如在v7中有很多以“Base”开始的主题风格,是一些父主题风格,不建议立即应用。

 

大量主题风格:
下列全是指“包括”,例如包括“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

许多主题风格在应用的时候会出错,缘故有很多,例如文本框务必承继AppCompactActivity,或是要承继ActionBarActiivty,或是要承继FragmentActivity,或是必须手动式特定高宽,或是必须提高最少API版本号,或是必须高些版本号的SDK,或是兼容包版本号不对等缘故。

 

用劲瞎折腾吧!!!

 

写的不太好,请不吝赐教。

 

    关键字:

天才代写-代写联系方式