zoukankan      html  css  js  c++  java
  • Android篇Styles和Themes常见用法可能疑点小结

    1.style和theme的区别:

    简而言之,style指的就是安卓中一个UI控件的样式,而themes指的是安卓中一个activity界面或者整个安卓应用整体的样式。theme的范围比style的范围大。

    2.style的继承用法:(全由笔者根据官方文档亲测,可放心使用,注意:样式的定义都在/res/values/style.xml中,而样式的使用在activity的布局文件里)

    •   对于继承安卓原装style,用法如下代码块,代码的意思是将安卓系统自带的TextAppearance样式中的textColor属性改成绿色,其他的属性不变:
      <style name="GreenText" parent="@android:style/TextAppearance">
              <item name="android:textColor">#00FF00</item>
          </style>
      然后在UI控件中通过<style>标签的name属性的值引用该样式,例如,在<TextView>中引用上面定义的样式代码块如下:
      <TextView
              android:text="hello style"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              style="@style/GreenText"
              />
    •   对于继承自定义的样式,有两种方式,例如如果我们已经有自定义好的父样式,代码如下:
      <style name="CodeFont" parent="@android:style/TextAppearance.Medium">
              <item name="android:layout_width">fill_parent</item>
              <item name="android:layout_height">wrap_content</item>
              <item name="android:textColor">#00FF00</item>
              <item name="android:typeface">monospace</item>
          </style>
      第一种是跟上面方法一样的,用parent属性,后面指定父样式,例如:
      <style name="Red" parent="@style/CodeFont">
              <item name="android:textColor">#FF0000</item>
          </style>
      第二种是继承自定义父样式特有的方式,使用符号.表示继承关系。例如:
      <style name="CodeFont.Red">
              <item name="android:textColor">#FF0000</item>
          </style>
      样式的使用方法依然是在UI控件中通过<style>标签的name属性的值引用该样式,注意,名字是<style>标签中name属性的值

    3.什么时候用@android:style什么时候用@style?

    @android:style是引用安卓系统自带的样式的,而@style是引用我们自己在/res/values/styles.xml文件中的样式,实际原理是这样的,资源引用的格式是这样的:
    @[package:]style/style_name
    UI控件中引用样式时是根据name引用的,而不是xml的文件名,xml的文件名可以任意,但是为了看名知意约定为styles.xml里面定义样式。安卓原生的样式在名为android的包里,所以引用时写成了@android:style。
  • 相关阅读:
    BZOJ1143: [CTSC2008]祭祀river
    接口自动化测试平台-接入持续集成jenkins
    mac OS npm 安装/卸载失败 权限问题解决方案
    初入React源码(一)
    初入React源码(一)
    mac OS git关联github
    重识TCP/IP协议族与HTTP基础
    重识TCP/IP协议族与HTTP基础
    Visual Studio Code mac OS 安装 中文简体语言包
    C#加密类
  • 原文地址:https://www.cnblogs.com/superpang/p/4859799.html
Copyright © 2011-2022 走看看