星空网 > 软件开发 > 操作系统

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

在AndroidManifest.

总结一下Android中主题(Theme)的正确玩法images/loading.gif' data-original="http://images2015.cnblogs.com/blog/18387/201603/18387-20160326152943901-349881464.png" />

需要注意的是,做为初学者或者专门来研究主题(Theme),你最好是删除values-v11和values-v14以及values-vXX,以免被这些东西所干扰。

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

 

主题的来源有三个:

1) 来自Android系统自带的

2) 来自兼容包的(比如v7兼容包)

3) 你自己写一个主题

这里主要探讨前两者,自己写主题不探讨。

 

使用android系统中自带的主题要加上“android:”,如:android:Theme.Black
使用v7兼容包中的主题不需要前缀,直接:Theme.AppCompat

 

在Android Studio中书写主题时都会有自动提示,而在Eclipse不会有自动提示

总结一下Android中主题(Theme)的正确玩法
解决办法是不要写“android:Theme.Black”,而是写“@android:style/Theme.Black”这样就会有提示
不要写“Theme.AppCompat”,而是写“@style/Theme.AppCompat”

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

因为 style(@android:style/Theme.Black) 与 theme(android:Theme.Black) 在使命上还是有区别的,所以在eclipse中书写时为了出现自动提示,可以写“@android:style/Theme.Black”,但是写完了之后,记得手动的改为“android:Theme.Black”

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

 

现在看看有些什么主题

系统自带主题:
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 兼容

总结一下Android中主题(Theme)的正确玩法
在eclipse中只能看到 appcompat_v7 后面没有跟API的版本号,如何识别呢?
可以在eclipse中展开v7项目的res文件夹,查看有没有values-21、values-23这样的文件夹,最大数字就是API版本号了。

总结一下Android中主题(Theme)的正确玩法
所以同样是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,或者兼容包版本不对等原因。

 

使劲折腾吧!!!

 

写得不好,请批评指正。

 




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

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

打击侵权:https://www.goluckyvip.com/tag/4774.html
意大利海外仓代发:https://www.goluckyvip.com/tag/47742.html
意大利节假日:https://www.goluckyvip.com/tag/47743.html
意大利节日:https://www.goluckyvip.com/tag/47744.html
意大利节日大全:https://www.goluckyvip.com/tag/47745.html
意大利解放日:https://www.goluckyvip.com/tag/47746.html
丽人丽妆2023年扭亏为盈 玉容初、美壹堂等自有品牌增速超40% :https://www.kjdsnews.com/a/1836576.html
一天拿下10万美金预售!深圳大卖出海第一年成为亚马逊供应商:https://www.kjdsnews.com/a/1836577.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流