• Android中的 style 和 theme


         通过设置 view 控件的属性,达到设置android UI的目的,如果某些 属性值复用率很高,可以考虑将属性单独声明在 style中,这样就可以达到复用的效果。

    一、style

    Style 概念:A style is a set of attributes that you can apply to a widget. 或者 A style is an XML resource that contains attributes that describe how a widget should look and behave.  一句话 sytle 是一组用于定义控件的属性集合。

    style的定义: 以标签 <style></style>来标示,定义在 res/value 目录 文件中 根标签 <resource>,其中每个属性项目使用  <item></item>标示。可以查看系统定义的一些style:在sdk安装目录下 某个sdk版本中 :platformsandroid-19data esvalues 的styles.xml 中,可以看到这里面属性名有以 android: 开头的,也有不以其开头的

      例如:

    <style name="AlertDialog">
            <item name="fullDark">@android:drawable/popup_full_dark</item>
            <item name="topDark">@android:drawable/popup_top_dark</item>
            <item name="centerDark">@android:drawable/popup_center_dark</item>
            <item name="bottomDark">@android:drawable/popup_bottom_dark</item>
            <item name="fullBright">@android:drawable/popup_full_bright</item>
            <item name="topBright">@android:drawable/popup_top_bright</item>
            <item name="centerBright">@android:drawable/popup_center_bright</item>
            <item name="bottomBright">@android:drawable/popup_bottom_bright</item>
            <item name="bottomMedium">@android:drawable/popup_bottom_medium</item>
            <item name="centerMedium">@android:drawable/popup_center_medium</item>
            <item name="progressLayout">@android:layout/progress_dialog</item>
            <item name="horizontalProgressLayout">@android:layout/alert_dialog_progress</item>
        </style>

    style的引用: 在控件中使用style 属性 指定需要引用的style  style =“@style/stylename”

     二 、theme

    Theme 概念:A theme is a collection of styles. theme 是style的集合,作用于整个APP 或者 整个Activity。

    theme 定义:在 res/values 目录文件中定义,以<resource>为根目录,方式与style相同。

        <style name="AppTheme" parent="AppBaseTheme">
            <!-- All customizations that are NOT specific to a particular API-level can go here. -->
        </style>
    

     theme的应用:在 Mainfest.xml 中 的 <appliaction> 或者 <activity> 标签中 使用  android:theme 指定 APP 或者某个 Activity的 theme。

     使用 工程中创建的theme

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

     使用系统内自带的theme

    <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.Holo.Light" >
    
  • 相关阅读:
    《CLR via C#》读书笔记 之 基元类型、引用类型和值类型 明
    《CLR via C#》读书笔记 之 类型和成员基础 明
    《CLR via C#》读书笔记 之 方法 明
    设计模式基础(一):UML中关系图解 明
    【转载】c#类的成员初始化顺序 明
    《CLR via C#》读书笔记 之 接口 明
    《CLR via C#》读书笔记 之 事件 明
    《CLR via C#》读书笔记 之 参数 明
    三塔DP——http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3554
    二分求幂——http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3549
  • 原文地址:https://www.cnblogs.com/igoogleyou/p/themesandroid.html
Copyright © 2020-2023  润新知