zoukankan      html  css  js  c++  java
  • 定义控件android学习笔记50_样式与主题,给控件使用样式,给应用使用主题

    PS:今天上午,非常郁闷,有很多简单基础的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!

        50_款式与主题

        android学习笔记---50_款式与主题,给控件使用款式,给应用使用主题定义和控件

        每日一道理
    生活的无奈,有时并不源于自我,别人无心的筑就,那是一种阴差阳错。生活本就是矛盾的,白天与黑夜间的距离,春夏秋冬之间的轮回,于是有了挑剔的喜爱,让无奈加上了喜悦的等待。

        

    2013/5/12
    50_款式与主题
    -----------------
    android款式和主题(style&theme)
    --------------------------------------
    1. android中的款式和CSS款式作用相似,都是用于为界面元素定义显示风格,它是一个包括一个或者多个view控件属性的集合。如:须要定义字体的颜色和巨细。
    在CSS中是这样定义的:
    <style>
        .itcast{COLOR:#0000CC;font-size:18px;}
    </style>
    可以像这样使用下面的css款式:<div class="itcast">javaeye</div>
    在Android中可以这样定义款式:
    在res/values/styles.xml文件中添加以下内容
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name=“itcast”> <!-- 为款式定义一个全局唯一的名字-->
            <item name=“android:textSize”>18px</item> <!-- name属性的值为使用了该款式的View控件的属性 -->
            <item name="android:textColor">#0000CC</item>
        </style>
    </resources>
    在layout文件中可以像下面这样使用下面的android款式:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android" ....>
        <TextView style="@style/itcast"
            .....  />
    </LinearLayout>
    -------------------------------------------------------
    2.新建android项目:style
    ---------------------
    a.款式:应用在详细的某个控件上。
    /style/res/values/styles.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
      <style name="textViewStyle"><!-- 给款式定义名称 -->
          <!-- 这里为main.xml文件中的TextView控件定义款式,
          android:textSize: 指定属性的名称
          android:textColor:指定文本颜色
          定义实现之后就可以在main.xml中使用该款式了。
          使用的时候:style="@style/childStyle.lidewei" 这里是要使用的款式的名字:childStyle.lidewei
           -->。
       <item name="android:textSize">22sp</item>
       <item name="android:textColor">#FF0000</item>
      </style>
     
      <style name="childStyle" parent="textViewStyle">
          <!-- 这里可以使用子款式继承父款式的内容。 -->
       <item name="android:layout_width">fill_parent</item>
       <item name="android:layout_height">wrap_content</item>
       <item name="android:textColor">#00FF00</item>
      </style>
     
      <style name="childStyle.lidewei">
          <!-- 这里是子款式继承父款式的第二种方法 lidewei是子款式的名字。childStyle是父款式的名字,用.号连接
          lidewei继承childStyle,childStyle又继承textViewStyle款式
          -->
       <item name="android:textColor">#0000FF</item>
      </style>
     
     
      <style name="credreamTheme">
       <item name="android:windowNoTitle">true</item>
       <item name="android:windowFullscreen">?android:windowNoTitle</item>
       <!-- 注意这里?android:windowNoTitle这句代码的意思是:这个属性的值引用的android:windowNoTitle这个属性,?android:windowNoTitle
       这个属性为true这个android:windowFullscreen属性也为true,为false这个属性也为false。改了android:windowNoTitle这个属性
       那么该属性也会跟着变 -->
       <item name="android:textSize">18sp</item>
       <!-- 设置该窗口中的显示的文字巨细,和文字颜色 -->
       <item name="android:textColor">#FFFFFF</item>
      </style>
    </resources>
    ----------------------------------------------
    /style/res/layout/main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android=" http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
       <!--   使用款式的方法
       style="@style/textViewStyle"
          style="@style/childStyle"
           style="@style/childStyle.lidewei" -->
    <TextView 
        style="@style/childStyle.lidewei"
        android:text="@string/hello"
        />
    </LinearLayout>
    -------------------------------------
    b.主题应用与整个应用,或者单个activity。
      也是在values文件夹下style.xml文件中定义:这里不一定就叫style.xml也可以起其他名字
    ---------------------------------------------------------
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
      <style name="textViewStyle"><!-- 给款式定义名称 -->
          <!-- 这里为main.xml文件中的TextView控件定义款式,
          android:textSize: 指定属性的名称
          android:textColor:指定文本颜色
          定义实现之后就可以在main.xml中使用该款式了。
          使用的时候:style="@style/childStyle.lidewei" 这里是要使用的款式的名字:childStyle.lidewei
           -->。
       <item name="android:textSize">22sp</item>
       <item name="android:textColor">#FF0000</item>
      </style>
     
      <style name="childStyle" parent="textViewStyle">
          <!-- 这里可以使用子款式继承父款式的内容。 -->
       <item name="android:layout_width">fill_parent</item>
       <item name="android:layout_height">wrap_content</item>
       <item name="android:textColor">#00FF00</item>
      </style>
     
      <style name="childStyle.lidewei">
          <!-- 这里是子款式继承父款式的第二种方法 lidewei是子款式的名字。childStyle是父款式的名字,用.号连接
          lidewei继承childStyle,childStyle又继承textViewStyle款式
          -->
       <item name="android:textColor">#0000FF</item>
      </style>
     
     
      <style name="credreamTheme">
       <item name="android:windowNoTitle">true</item>
       <item name="android:windowFullscreen">?android:windowNoTitle</item>
       <!-- 注意这里?android:windowNoTitle这句代码的意思是:这个属性的值引用的android:windowNoTitle这个属性,?android:windowNoTitle
       这个属性为true这个android:windowFullscreen属性也为true,为false这个属性也为false。改了android:windowNoTitle这个属性
       那么该属性也会跟着变 -->
       <item name="android:textSize">18sp</item>
       <!-- 设置该窗口中的显示的文字巨细,和文字颜色 -->
       <item name="android:textColor">#FFFFFF</item>
      </style>
    </resources>
    -------------------------------------------------------------
    /style/AndroidManifest.xml
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android=" http://schemas.android.com/apk/res/android"
        package="com.credream.style"
        android:versionCode="1"
        android:versionName="1.0" >
        <uses-sdk android:minSdkVersion="8" />
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
             android:theme="@style/credreamTheme"
             ><!--
             android:theme="@style/credreamTheme"这句话写到application节点下,代表该主题对整个应用都生效
             android:theme="@style/credreamTheme"这句代码写到activity节点下代表该主题只针对这个activity生效 -->
            <activity
                android:label="@string/app_name"
                android:name=".StyleActivity" >
                <intent-filter >
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    </manifest>
    --------------------------------------------------------
    c.这里主题,主要设置窗口的款式,没有标题,并且全屏显示
    -------------------------------------------------------------
    d.注意当主题里面的款式和控件属性的款式冲突的时候,它让控件属性的款式优先显示。
    --------------------------------------------------------------------------------  

        定义和控件

    文章结束给大家分享下程序员的一些笑话语录: 与女友分手两月有余,精神萎靡,面带菜色。家人介绍一女孩,昨日与其相亲。女孩果然漂亮,一向吝啬的我决定破例请她吃晚饭。
    选了一个蛮贵的西餐厅,点了比较贵的菜。女孩眉开眼笑,与我谈得很投机。聊着聊着,她说:“我给你讲个笑话吧。”“ok”
      “一只螳螂要给一只雌蝴蝶介绍对象,见面时发现对方是只雄蜘蛛。见面后螳螂问蝴蝶‘如何?’,‘他长的太难看了’,‘别看人家长的丑,人家还有网站呢’。”
      “呵呵………”我笑。忽然她问:“你有网站吗?”  

  • 相关阅读:
    《架构整洁之道》阅读笔记
    设计模式——单例模式
    设计模式——工厂模式使用
    记一次同事安装我自定义一Python3 SDK在window10安装失败情况
    CentOS7常用的一些命令
    Java
    Java
    Java
    Java
    python
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3074177.html
Copyright © 2011-2022 走看看