Style和Theme主要是用于对Android应用进行美化设计,优化交互页面,充分利用各种样式和主题资源,可以开发出各种风格的Android应用
Style
当我们需要面对大量的组件指定相似格式,例如:字体,颜色,背景颜色等等,要是我们每次都选择为View组件重复指定这些属性,无疑会造成工作量的剧增,而且不理由代码维护性和可视性。
类似于Word和PPT的管理格式:一个样式等于一组格式的集合,如果设置某段文本使用某个样式,那么该样式的所有格式会整体被应用于该文本。一个样式相对于多个格式的集合,其他UI组件通过style属性来指定样式,这就相当于把该样式包含的所有格式同时应用于该UI组件
定义样式资源:
11sp
#32d
#116
26dp
#005
然后在布局页面中使用:
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/style1"
style="@style/style1"/>
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/style2"
style="@style/style2"/>
Theme
和样式资源很相似,主题资源的XML也放在和样式资源一起的目录下
但是主题资源和样式资源还真就有这区别:主题不能作用于单个View组件,主体应该对整个应用中的所有Activity起作用,或者对指定的Acitivity起作用。主题定义的格式应该是改变窗口外观的格式,例如窗口标题,窗口边框这些等
定义主题资源:
true
true
@drawable/window_border
@drawable/star
在Android代码中写入:
public vod onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setTheme(R.style.CrazyTheme);
setContentView(R.layout.main);
}
最后在AndroidManifest.xml中添加theme即可
....