博客
关于我
Android主题和样式精炼详解
阅读量:360 次
发布时间:2019-03-05

本文共 1284 字,大约阅读时间需要 4 分钟。

一、前期基础知识储备

(1)样式Style定义,上官方文档:

资源中的Theme类存储了当前主题的属性值。换句话说,Theme是一个属性集合,用于与TypedArray配合来解析最终的属性值。主题的属性在以下两种情况下发挥作用:(1) 可以通过?themeAttribute语法显式地引用主题中的值;(2) 如果一个样式属性没有定义,就会作为最后的手段从主题中查找该属性的值。

通常,我们会使用obtainStyledAttributes方法组合来检索带有样式和主题信息的XML属性。

样式Style是用于指定视图或窗口的外观和格式的一组属性集合。样式可以用来设置高度、填充、字体大小、背景颜色等等。样式在XML资源文件中定义,与布局的XML文件是分开的。

Android中的样式与网页设计中的CSS(层级联样式表)遵循同样的哲学:将设计和内容分开

(2)主题Theme定义,上官方文档:

R.style是一个扩展Object类的静态类,位于android.R.style主题Theme可以应用到整个activity或应用程序上。样式只应用到单个视图。当一个样式被设定为主题后,activity或应用程序中的所有视图都会应用这个主题中它支持的属性。例如,你可以将上述示例中的GodFont样式作为一个activity的主题,然后这个Activity中的所有文字都将变成monospace字体。

主题在应用中最常见的用途是应用程序的皮肤切换。例如,某些网易云音乐的换肤界面,通过更换不同的皮肤,读者可以看到标题栏、小图标颜色、选中字体颜色、播放控制键颜色等都与主题切换。通过样式Style可以单独控制其中某一元素的属性,而通过主题Theme可以控制一组元素属性,我们可以称主题Theme为特殊的样式Style

二、上代码,具体实现

(1)定义样式Style步骤:

① 在res\values\下创建styles.xml文件;

② 添加<resources>节点(根节点);

③ 添加自定义的样式;

④ 在特定控件或布局中添加样式属性;

例如:

(2)定义主题Theme步骤:

① 在res\values\下创建themes.xmlstyles.xml文件;

② 添加<resources>节点(根节点);

③ 添加自定义的样式;

④ 在AndroidManifest.xml文件中,为Activity指定主题属性;

例如:

读者有没有注意到parent属性,<style>元素的parent属性是可选的。parent属性用于指定当前样式要继承属性的样式的id(样式之间是可以继承的)。你还可以覆写继承来的属性。

三、Android系统常用自带样式

读者可以参考以下样式:

例如:

@android:style/Theme.NoTitleBar(没有标题栏的主题)
@android:style/Theme.Dialog(对话框样式)
@android:style/Theme.Light(轻色主题)
@android:style/Theme.Dark(暗色主题)

转载地址:http://xojg.baihongyu.com/

你可能感兴趣的文章
KeepAlived介绍、配置示例、KeepAlived配置IPVS、调用脚本进行监控
查看>>
web服务器处理网络请求过程、I/O与I/O模型介绍、select、poll、epoll介绍
查看>>
【Numpy学习】np.count_nonzero()用法解析
查看>>
Scala集合-数组、元组
查看>>
Flink Standalone集群安装和部署
查看>>
JAVA网络爬虫01-http client爬取网络内容
查看>>
04 程序流程控制
查看>>
java并发编程(1)
查看>>
C++&&STL
查看>>
双指针算法思想
查看>>
分组背包问题
查看>>
子集(LeetCode 78)
查看>>
旋转数组的最小值
查看>>
1089 狼人杀-简单版
查看>>
1004 Counting Leaves (30分)
查看>>
1093 Count PAT‘s (25分) 含DP做法
查看>>
一篇解决JMM与volatile详解(二)
查看>>
数据结构之数组与经典面试题(二)
查看>>
无锁并发框架-Disruptor的使用(二)
查看>>
Android wm命令
查看>>