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。

最新文章

  1. 【linux】jdk安装
  2. CSS3鼠标悬停图片动画
  3. Calling / Running a report in Oracle forms 10g / 11g
  4. kali install fcitx
  5. 2014.9.25DOM元素操作
  6. Eclipse代码自动提示设置
  7. POJ - 1797 Heavy Transportation 单源最短路
  8. 通过命令行操作MYSQL的方法 以及导入大的SQL备份文件
  9. C# Html格式内容转Csv内容包括table(重点在rowspan和colspan合并),p,div元素
  10. Xml序列化 详解
  11. 国外服务器:org.xml.sax.SAXParseException
  12. 【C#复习总结】多线程编程
  13. Kafka史上最详细原理总结
  14. [ssh] 通过ssh私钥生成公钥的方法
  15. Linux vim文档操作
  16. phpcmsv9 管理加密解密
  17. Java连接S3并上传Redis
  18. [代码]--WinForm 窗体之间相互嵌套
  19. 关于Android开发中使用的XML
  20. HTML表格的运用

热门文章

  1. Docker入门(四):服务(Services)
  2. 用expressjs写RESTful API
  3. [hiho1578]Visiting Peking University
  4. PCL推荐的命名规范(2)
  5. Spring入门第十六课
  6. 洛谷 P5162 WD与积木【多项式求逆】
  7. 分层确定性钱包开发的代码实现(HD钱包服务)
  8. ajax对象。同步与异步及ajax发送请求
  9. 进击JavaScript核心 --- (1)基本数据类型
  10. windows 查看端口占用(转)