style指定了你的界面上的属性默认情况下通过什么样的方法进行装饰。
属性指的是:颜色、高度、填充和字体大小等。
比如说:界面的背景默认采用哪种颜色,界面的文字默认采用哪种颜色,等等。
当我们创建一个项目的时候,会在res/values/路径下,默认生成style.xml这样的文件。并且提供了这样的默认样式。
这些都是什么意思呢,作用是什么呢?
第一:< style > < / style>
创建style,就必须写在style.xml这个文件中。
并通过< style > < / style >标签来表示,创建了一个style。
第二:< style >标签的属性
name:表示当前style的名字,调用方通过名字选择具体的style。
parent:表示该style继承了哪一个< style >。(说明style采用的是继承制,继承是继承父类的子标签,也就是< item >。)只有继承Android自带的theme的style,才能被称为theme。
第三:< style >的子标签< item >
item:表示默认值的名字及其值。一个样式中,会存在各种各样的默认值设置。(比如:宽度、高度、字体大小、字体颜色等)这些每个的默认值,都由一个item表示。
name:默认值的名字,当然这些name可不是随便设置的。(www.daowen.com)
第一种方式:Android已经为我们自定义了一堆item了
比如平时经常在layout中针对View使用到的:
android:layout_width="xx"
android:layout_height="xx"
android:background="xx"
...
其实是item的一部分,也可以在< style >中使用,这些属性主要是针对View的设置。其他一部分,比如说针对Activity的ActionBar的样式修改,就只能在< style >中使用了。
工作原理:首先,Android本身自带了一堆style和定义的item。这些style被称作为theme。也就是说都是被Application和Activity使用的。
其次,当然Android自带的theme可能有些item设置的默认属性不符合我们的要求,我们想要去修改它,那么如何修改这些item呢?
从组成部分我们知道,style采用的是继承制(原理跟java的继承是一样的就不多说了),通过< style >的parent的属性继承其他style。与java同样我们只需要对想修改的部分进行重写就可以了。在java中是子类与父类的方法名相同,在style中是子style中< item >的 name属性与父style中< item > 的 name属性相同。
例:
这样一个符合自己风格的默认样式就诞生了。
最后,就是控件获取该样式,并进行判断是否使用该样式中的默认值。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。