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"
上一篇下一篇

猜你喜欢

热点阅读