您的位置:首页 > 移动开发 > Android开发

赵雅智_android样式与主题

2014-06-13 15:39 274 查看

样式与主题的区别

样式应用于特殊的组件,主题应用与整个应用或整个Activity

主题不仅单单显示内容的风格(大小、颜色),而且可以设置窗口的显示风格

当主题的设置属性与样式的设置属相相同时,系统按样式的设置属性显示

系统定义的一些常有主题:

<activity android:theme="@android:style/Theme.Dialog"></activity>对话框风格

<activity android:theme="@android:style/Theme.Translucent"></activity>透明风格

可以通过文档reference->android->R.style查看

样式

在styles.xml文件里声明样式或主题

样式声明

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="AppBaseTheme" parent="android:Theme.Light"></style>

    <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>
    <!-- 样式1 -->
    <style name="style_textviewSize">
        <item name="android:textSize">20sp</item>
        <item name="android:layout_width">match_parent</item>
        <item name="android:layout_height">wrap_content</item>
        <item name="android:gravity">center</item>
    </style>
    <!-- 样式2继承样式1 -->
    <style name="style_textviewColor" parent="style_textviewSize">
        <item name="android:textColor">#ff0000</item>
    </style>

    <!-- 继承父样式的格式2 父样式.子样式 -->
    <style name="style_textviewColor.subChiidStyle">
        <item name="android:textColor">#0000FF</item>
    </style>

</resources>


样式应用与特定控件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.android_theme.MainActivity$PlaceholderFragment" >

    <TextView
        android:id="@+id/textView1"
        style="@style/style_textviewSize"
        android:text="TextView1" />

    <TextView
        android:id="@+id/textView2"
        style="@style/style_textviewColor"
        android:layout_below="@+id/textView1"
        android:text="TextView2" />

    <TextView
        android:id="@+id/textView3"
        style="@style/style_textviewColor.subChiidStyle"
        android:layout_below="@+id/textView2"
        android:text="TextView3" />

    <TextView
        android:id="@+id/textView4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView3"
        android:text="TextView4" />

    <TextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView4"
        android:text="TextView5" />

</RelativeLayout>







主题

主题应用与整个应用或activity在manifest.xml文件里进行设置



主题应用与整个应用或activity在style.xml文件里进行设置

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 主题设置 -->
    <style name="theme">
          <!-- 没标题 -->
        <item name="android:windowNoTitle">true</item>
         <!-- 全屏显示 -->
        <item name="android:windowFullscreen">?android:windowNoTitle</item>   
    
    </style>

</resources>
?:?表示引用在当前主题中定义过的资源的值,也就是android:windowNoTitle

应用与整个应用

<application
                android:icon="@drawable/ic_launcher"
                android:label="@string/app_name"
                  android:theme="@style/theme" >


应用与整个activity

<activity
              android:name=".MainActivity"
              android:label="@string/title_activity_main" 
              android:theme="@style/theme">
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: