Android的Theme个人理解其实就像是网页中的CSS,甚至连标签的名字都感觉是一样的,如style标签。
通常在APK开发的过程中,对UI/UE设计好的UI界面进行实现一定会用到styles, 看有的博客上写到style和theme,
其实无论是style还是theme都是对view控件的显示属性进行控制,区别在于影响范围的大小,Theme针对的是Application,
Activity等大的控件,影响的是整个APP,或者某个界面的整体风格;而普通命名的style针对类似Button, TextView等较小的控件。
也可以做如下理解:
- Theme是针对窗体级别的,改变窗体样式;通过android:theme应用于AndroidManifest中的Application或者Activity节点。
- Style是针对窗体元素级别的,改变指定控件或者Layout的样式;通过style或者@style/XX应用于指定控件。
Lollipop/frameworks/base/core/res/res/values/themes.xml
Lollipop/frameworks/base/core/res/res/values/styles.xml
同java中的继承一样,theme和style都有parent属性,可以通过继承来同样拥有其parent的属性设置,如果如果重新设置parent中已经
设置的属性则以重设置的为准,例如
<style name="Widget.ListView" parent="Widget.AbsListView">
自定义theme的基础步骤
1.在res/values目录下创建styles.xml。
这个xml的名字不一定要叫做styles,你可以取任意的名字,重点是xml文件中的内容