Theme
和
Style
的区别:
+
Theme
是
Style
的集合
+
Style
作用于单个
View
对象,而
Theme
则作用于一个特定
Activity
中的所有
View
对象
+
可以认为
Theme“
是一种
”Style
+
多个
Theme
可以同时作用于同一个
Activity
+
Android
操作系统已经在
android.R.style
中预定义了诸如
Theme_Black
,
Theme_Light
,
Theme_NoTitleBar_Fullscreen
等
Theme
1.
创建
styles.xml
文件,用作
Theme
编辑
styles.xml
,使之如下:
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
resources
>
<
style
name
=
"right"
>
<
item
name
=
"android:gravity"
>
right
</
item
>
</
style
>
<
style
name
=
"green_glow"
>
<
item
name
=
"android:textStyle"
>
bold
</
item
>
<
item
name
=
"android:shadowColor"
>
#0F0
</
item
>
<
item
name
=
"android:shadowRadius"
>
3.0
</
item
>
<
item
name
=
"android:shadowDx"
>
1.5
</
item
>
<
item
name
=
"android:shadowDy"
>
1.3
</
item
>
<
item
name
=
"android:textColor"
>
#FFF
</
item
>
</
style
>
</
resources
>
2.
修改
main.xml
,使之如下:
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:orientation
=
"vertical"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"Big!"
android:textSize
=
"128px"
android:textColor
=
"#FF0"
/>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"Hello,
Android!"
android:textSize
=
"16px"
android:textColor
=
"#F00"
/>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"Glow"
android:textSize
=
"96px"
/>
</
LinearLayout
>
3.
修改
Activity
对应的代码,使之如下:
public
class
ControlTheme
extends
Activity
{
@Override
public
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
// setTheme
方法的调用
,
一定要在
setContentView
之前
setTheme(R.style.
right
);
setTheme(R.style.
green_glow
);
setContentView(R.layout.
main
);
}
}
4.
运行结果