zoukankan      html  css  js  c++  java
  • android 中theme和style的语法相关

    1.theme和style都是一组属性的集合,用于定义文本、颜色、大小等显示风格。他们都是资源,可以用android系统级别的一些默认的风格和主题资源,你也可以自定义你自己的主题和风格资源。

    2.自定义style

     1 <resources>
     2  <style name="CustomTheme">
     3  <item name="android:windowNoTitle">true</item>
     4  <item name="windowFrame">@drawable/screen_frame</item>
     5  <item name="windowBackground">@drawable/screen_background_white</item>
     6  <item name="panelForegroundColor">#FF000000</item>
     7  <item name="panelBackgroundColor">#FFFFFFFF</item>
     8  <item name="panelTextColor">?panelForegroundColor</item>
     9  <item name="panelTextSize">14</item>
    10  <item name="menuItemTextColor">?panelTextColor</item>
    11  <item name="menuItemTextSize">?panelTextSize</item>
    12  </style>
    13 </resources>

    注意:@符号表明了我们应用的资源是前边定义过的(或者在前一个项目中或者在Android 框架中)。?符号表明了我们引用的资源的值在当前的主题当中定义过。通过引用在<item>里边定义的名字可以找到(panelTextColor 用的颜色和panelForegroundColor中定义的一样)。这中技巧只能用在XML资源当中。

    3.自定义Style(2)

        <style name="AppBaseTheme" parent="android:Theme"></style>
    
        <style name="AppTheme" parent="AppBaseTheme">
            <item name="android:textSize">50sp</item>
        </style>
    
        <style name="AppTheme.Test" parent="android:Theme.Light">
            <item name="android:textColor">#ff0000</item>
        </style>
    
        <style name="AppTheme.Test.Blue">
            <item name="android:textColor">#0000ff</item>
        </style>
    
        <style name="AppTheme.Test.Blue.New">
            <item name="android:textColor">#0000ff</item>
            <item name="android:textSize">30sp</item>
        </style>

       parent字段标明改style从哪种style继承过来,然后我们就可以在该style 内复写父style中的一些风格,比如字体、颜色etc。

      以下有几点要注意一下:

        1.第三种style是通过A.B这样的形式定义的,这是继承的另外一种简易的写法。但只要有parent属性,那么parent会完全覆盖A的所有属性,即A写不写都是一样的,该自

         定义style 不会从A继承到任何风格,这里用上面的例子运行一下就可以看出来;

        2.如果自定义的style没有parent属性,那么style的name中的A部分可以不写,这表明这是我们自定义的style,但是如果用简易的写法来写,而且又不想写parent的话

                 那么A必须是声明过的,否则会报错“A主题找不到”;

        3.简易的写法支持多继承。

    3.接下来我们就可以在manifest中,或者指定的空间直接使用我们自定义的style 了。

      

  • 相关阅读:
    postgreSQL官网对json的一些说明
    postgreSQL_jsonb中某一个键值对的修改操作
    redis基础
    failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
    012、时间、日期控件
    011、AutoCompleteTextView控件,具有自动提示功能的菜单
    010、Spinner使用
    009、使用ViewFlipper实现左右滑动事件
    008、不同程序的彼此调用
    007、判断手机操作系统是否允许运行程序
  • 原文地址:https://www.cnblogs.com/yiludugufei/p/5274408.html
Copyright © 2011-2022 走看看