效果如下图:
通过xml文件来设置主题和样式:
style文件自定义样式和主题的代码:
- <?xml version="1.0" encoding="utf-8"?>
- <resources>
- //设置父主题,取自TextAppearance
- <style name="tmacskyTheme" parent="@android:style/TextAppearance">
- <item name="android:layout_width">fill_parent</item>
- <item name="android:layout_height">wrap_content</item>
- <item name="android:layout_weight">1</item>
- </style>
- //设置子主题
- <style name="tmacskyTheme.textRed">
- <item name="android:background">@color/red</item>
- </style>
- <style name="tmacskyTheme.textBlue">
- <item name="android:background">@color/blue</item>
- </style>
- <style name="tmacskyTheme.textGreen">
- <item name="android:background">@color/green</item>
- </style>
- //设置颜色
- <color name="red">#FF0000</color>
- <color name="green">#00FF00</color>
- <color name="blue">#0000FF</color>
- </resources>
xml文件:
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical" >
- <TextView
- android:id="@+id/textView1"
- style="@style/tmacskyTheme.textBlue"
- android:text="TextView1" />
- <TextView
- android:id="@+id/textView2"
- style="@style/tmacskyTheme.textGreen"
- android:text="TextView2" />
- <TextView
- style="@style/tmacskyTheme.textRed"
- android:id="@+id/textView3"
- android:text="TextView3" />
- </LinearLayout>
系统自带的Theme:
android以及为我们定义好了一些theme,需要是我们直接可以拿来使用。
常用的Theme通常如下:
android:theme="@android:style/Theme.Dialog"将一个activity显示为对话框模式
android:theme="@android:style/Theme.NoTitleBar"不显示应用程序标题栏
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"不显示应用程序标题栏,并全屏
android:theme="@android:style/Theme.light"背景为白色
android:theme="@android:style/Theme.light.NoTitleBar" 白色背景,无标题栏
android:theme="@android:style/Theme.light.NoTitleBar.Fullscreen" 白色背景,无标题栏,全屏
android:theme="@android:style/Theme.Black"背景为黑色
android:theme="@android:style/Theme.Black.NoTitleBar" 黑色背景,无标题栏
android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏
android:theme="@android:style/Theme.Wallpaper"用系统桌面为应用程序背景
android:theme="@android:style/Theme.Wallpaper.NoTitleBar" 用系统桌面为应用程序背景
,无标题栏
android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen" 用系统桌面为应用程序背景
,无标题栏,全屏
定义自己的Theme:
Theme的写法和style很相似,也为:
<style name="MyTheme"[parent="PARENT"]>
<item name="[ATTR]">[VALUE]</>
</style>
Theme的属性在Android的文档中并没有介绍,不过我们可以从系统自带的theme中对其进行了解:
一下是我们从android系统本身所带的theme.xml中提取出来的一些常用的属性:
<item name="windowBackground">@android:drawable/screen_background_dark</item>
<item name="windowFrame">@null</item>
<item name="windowNoTitle">false</item>
<item name="windowFullscreen">false</item>
<item name="windowFloating">false</item>
<item name="windowBackground">@android:drawable/screen_background_dark</item>