Android Ui设计总结
- 样式与主题
样式与主题
样式可以声明类似高度,内边距,字体颜色,字体大小,背景颜色等等。样式与主题影响的范围不一样,样式仅影响单个View,而主题影响这个Activity或Application.
- 定义样式
在res/values/
下新建任意的xml文件。类似如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="CodeFont" parent="@android:style/TextAppearance.Medium">
<item name="android:layout_width">fill_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">#00FF00</item>
<item name="android:typeface">monospace</item>
</style>
</resources>
注意的点:<item>
的值可以为字符串,颜色值,引用,或其他样式表
- 样式的继承
可以通过继承已有的style
来重写或添加样式。
两种方式:1. parent
属性值 2. 使用前缀
<!-- 第一种-->
<style name="GreenText" parent="@android:style/TextAppearance">
<item name="android:textColor">#00FF00</item>
</style>
<!-- 第二种-->
<style name="GreenText.Red">
<item name="android:textColor">#FF0000</item>
</style>
注意:在继承Android原有自定义的样式时只能使用第一种方式,第二种可以循环继承,即可写成这样子的方式<style name="CodeFont.Red.Big">
-
样式属性
-
Item
能设置View的XML属性 - 当View的样式所设置的属性不存在或无效时会自动忽略,仅匹配当前View可支持的样式属性
- 某些样式属性只能在主题下使用,对View无效,对Activity和Application有效,例如
windowNoTitle
属性 - 当然属性前要有命名空间前缀
-
-
样式与主题的适用
两种方式:
- 在布局文件中对个别的View定义
android:style
- 在
Android manifest
文件中<activity>
或<application>
元素设置android:theme
注意:在viewGroup应用style不会影响其子控件
- 在不同的Android版本下选用不同的主题
将style文件放置在相应的res/values/
文件夹下。例如将3.0以上的主题放置在res/values-v11
下