在《Android Studio中styles.xml文件的使用2-1》中提到,默认的或者自定义的style可以控制应用程序的外观颜色。除了应用程序的外观颜色,style还可以控制控件的属性。
1 自定义style控制控件属性
创建多个属性相似的控件时,可以使用自定义style的方法。例如创建模拟键盘时,所有的按键出了显示的内容不同之外,其他属性基本相同。
1.1自定义style
在style.xml中自定义控制控件属性的style的代码,如图1所示。
图1 定义控制控件属性的style
其中,该style的名称是“yangButton1”,通过五个item子元素定义了Button控件的宽度、高度、显示内容、内容颜色以及内容字体五个基本属性。
1.2 使用style
在布局文件中,可以使用“1.1自定义style”中自定义的style创建Button控件,如图2所示。
图2 使用自定义style创建Button控件
以上代码创建了三个Button按键,每个按键的style属性的值都是“1.1自定义style”中自定义的style,产生的控件效果如图3所示。
图3 控件效果
2 style的继承
2.1 自定义继承的style
“1.2 使用style”中创建个按键所有属性都一样,而我们需要的是大多数属性相同,少数属性不同的控件。例如第一个Button控件的文字颜色是绿色,第二个Button控件的颜色是蓝色,第三个Button控件的颜色是蓝色。此时,就需要用的三到style的继承的继承了,如图4所示。
图4 style的继承
其中,自定义style的名字是“yangButton2”,parent表示其父style是“yangButton1”(图4①),即“yangButton2”继承了“yangButton1”的五个属性(图1)。而图4②中的item子元素表示“yangButton2”又重写了其父style的android:textColor的属性,将该属性设置为“@color/yangRed”即红色,而其他四个属性是不变的。“yangButton3”同样继承自“yangButton1”,而它把父style的android:textColor的属性重写为“@color/yangBlue”即蓝色。
2.2 使用继承的style
使用继承的style与“1.2 使用style”中提到的方法相同,如图5所示。
图5 使用继承的style
此时第二个Button控件的style指定为自定义的“yangButton2”,而第三个Button控件的style指定为自定义的“yangButton3”,其效果如图6所示。
图6 控件效果