部分内容摘自:
http://blog.csdn.net/woshishushangdezhu/article/details/4602597
1.什么是Style,什么是Theme?
1)
Style:是一个包含一种或者多种格式化属性的集合,我们可以将其作为一个单位用在布局XML单个元素当中。
2)
Theme:是一个包含一种或者多种格式化属性的集合,我们可以将其作为一个单位用在应用中所有的Activity当中或者应用中的某个Activity当 中。
2. 定义Styles和Themes资源
Styles和Themes都是资源,存放在res/values文件夹下。
对每一个Styles和Themes,给
1) 自定义一个style
在res/values/sytles.xml中添加自定义的style:
flagNoExtractUi|flagNoFullscreen
18sp
#EC9237
那如何应用这个style呢?
style="@style/EditTextStyle"
android:layout_width=”fill_parent”
android:layout_height=”wrap_content”
android:gravity=”center_vertical|center_horizontal”
android:text=”moandroid”/>上面这个EditText的样式,显示输入法的时候就不会全屏显示而挡住输入的内容。
2)自定义一个Theme
Theme依然在
定义Theme的一个例子
<?xml version=”1.0″ encoding=”UTF-8″?>
true
14sp
#FFFF0000
@ 表明我们应用的资源是前边定义过的(或者在前一个项目中或者在Android 框架中)。
?表明我们引用的资源的值在当前的主题当中定义过。
在程序中使用Theme的方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTheme(R.style.NewTheme);
setContentView(R.layout.main);
}
在AndroidManifest.xml中应用Theme
为了在当前所有的Activity当中使用Theme,可以打开AndroidManifest.xml 文件,编辑标签,让其包含android:theme属性,值是一个主题的名字,例如:。
如果只是想让程序当中的某个Activity拥有这个Theme,那么可以修改标签。Android中提供了几种内置的资源,有好几种Theme你可以切换而不用自己写。比如可以用对话框Theme来让你的Activity看起来像一个对话框。在manifest中定义,例如:
如果喜欢一个Theme,但是想做一些轻微的改变,只需要将这个Theme添加为parent。Android SDK为我们提供了很多现成的Them。
3. 开发中常用的style属性
@style/Button.Light
@style/CheckBox.Light
@style/GridView.Light
@style/ListView.Light
@style/TextView.Light
@style/Spinner.Light
@style/RadioButton.Light
@style/EditText.Light
@style/AutoCompleteTextView.Light
@style/ProgressBar.Light
@style/SpinnerDropDownItem.Light
@android:color/transparent
@drawable/scrollbar_horizontal
@drawable/scrollbar_vertical
@style/ProgressBar.Horizontal.Light
@null
true
@null
true
@null
@null
true