style和theme
2017-04-14 本文已影响0人
shenlong77
style
style样式资源,定义在values文件夹下,style.xml中。
1 基本结构
style标签中,定义name,每个style标签中可以定义多个item标签,item标签中name设置各种布局的属性,标签之间设置属性值。使用parent属性可以继承另一个style。
<!--设置一个style-->
<style name="Text">
<item name="android:textSize">50sp</item>
</style>
<!--设置一个style,并继承Text-->
<style name="AnotherText" parent="@style/Text">
<item name="android:textSize">50sp</item>
</style>
2 在布局文件中使用style
可以在各种View控件中使用引入style,引入style后,该控件便具有了style定义的属性。View和style的关系,就类似于html和css的关系。
使用方法为 style="@style/Text"
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Text"
android:text="dddd"/>
theme
theme是主题样式,定义的方法和style一致,但是Theme只能用于设置activity窗体的样式。需要在AndroidMenifest中的Activity中引入theme
格式为 android:theme="@style/NoDisplayTheme"
设置theme
<!-- Application的主题 -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/truncate</item>
<item name="colorPrimaryDark">@color/truncate</item>
<item name="colorAccent">@color/truncate</item>
</style>
<!-- 某个Activity的主题 -->
<style name="NoDisplayTheme" parent="@style/AppTheme">
<!--设置背景是否透明-->
<item name="android:windowIsTranslucent">true</item>
<!--设置背景颜色-->
<item name="android:windowBackground">@color/truncate</item>
<!--设置是否显示标题-->
<item name="android:windowNoTitle">true</item>
</style>
在AndroidManifest的activity中引入theme
<activity android:name=".MainActivity" android:theme="@style/NoDisplayTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
使用系统自带的theme
1、Android:theme="@android:style/Theme.Dialog"
将一个activity显示为对话框
2、Android:theme="@android:style/Theme.NoTitleBar"
应用程序无标题栏
3、Android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
应用程序无标题栏,并全屏
4、Android:theme="@android:style/Theme.Light"
背景为白色
5、Android:theme="@android:style/Theme.Light.NoTitleBar"
背景为白色,且无标题栏
6、Android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"
背景为白色,无标题栏,且全屏
7、Android:theme="@android:style/Theme.Black"
背景为黑色
8、Android:theme="@android:style/Theme.Black.NoTitleBar"
背景为黑色,且无标题栏
9、Android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
背景为黑色,无标题栏,且全屏
10、Android:theme="@android:style/Theme.Wallpaper"
用系统桌面为应用程序背景
11、Android:theme="@android:style/Theme.Wallpaper.NoTitleBar"
用系统桌面为应用程序背景,且无标题栏
12、Android:theme="@android:style/Theme.Wallpaper.NoTitleBar.Fullscreen"
用系统桌面为应用程序背景,无标题栏,且全屏
13、Android:theme="@android:style/Theme.Translucent"
应用程序透明
14、Android:theme="@android:style/Theme.Translucent.NoTitleBar"
应用程序透明,且无标题栏
15、Android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
应用程序透明,无标题栏,且全屏
16、Android:theme="@android:style/Theme.Panel"
17、16、Android:theme="@android:style/Theme.Light.Panel"