码迷,mamicode.com
首页 > 移动开发 > 详细

android 设置View控件的全局样式和风格

时间:2014-12-07 09:05:16      阅读:425      评论:0      收藏:0      [点我收藏+]

标签:android   style   io   ar   color   使用   sp   java   strong   

android开发部中,不可避免的要设定某一类按钮的按压,点击,聚焦等状态,通常对于这一类问题而言,最原始的方式就是在布局文件中亲自设定,然而对于一个比较大型的项目而言,这种方式造成的可维护性不是很好,因此要尽量做到代码重用。


android项目中通常有3个设置样式的资源文件夹

values

values-11

values-14

这三个对应不同平台的sdk版本的样式,对于android开发中兼容问题而言,要做到“让最新的api运行在最新的android sdk中”,这是非常好的一种行为。

values文件主要用来设置主题样式,权限依据平台细分,也就是说android4.x会最先找values-14再去找values-11最后找values,android2.x最先找values-11最后找values


以上是values的设置问题,通常来说,style.xml一般被使用来设置 window和activity主题与样式,但实际上,style.xml也可以用来设定控件的全局样式。


下面有句名言:

尽量让主题样式和页面风格保持统一,花花绿绿是最丑的风格。

——我,2014年12月07日最终总结


对于一个控件而言,如ToggleButton,RadioButton,CheckBox,滚动条颜色,Button,当点击时状态切换前后样式是不一样的。


一般来说,这种设置有2种,如下比如我设置字体:

style.xml-1

    <style name="text_red_20_blod">
        <item name="android:textStyle">bold</item>
        <item name="android:textSize">20.0sp</item>
        <item name="android:textColor">@color/red_text_color</item>
    </style>

这种的局限性和亲自到布局文件设置的一样,只不过少了许多代码,提高了重用性,可以说只做到了部分全局化。

style.xml-2

<style name="AppTheme" parent="android:Theme.Holo.Light">
        <item name="android:textStyle">bold</item>
        <item name="android:textSize">20.0sp</item>
        <item name="android:textColor">@color/red_text_color</item>
</style>

这种事最全局的,提高了重用性,当然也有他的缺点,这点不可避免,那么在开发中,我们如何选择呢?


  1. style.xml-1 中样式变化最为频繁的View风格,这样做可以避免layout文件中过多的代码累计,就像css样式一样

  2. style.xml-2适用于全局较为统一的View风格,也就是说是一些View的共性的统一,一般来说如ToggleButton,CheckBox,Button等View的状态切换样式在同一项目中总是保持着一直的变化效果。也就是说,当我们使用自定义放入ToggleButton切换状态之后,下次再次使用ToggleButton风格应该和上次风格保持一致才对。

  3. 冲突问题,如果在style.xml-2下使用style.xml-1的内容将如何显示,这个问题一句话可以描述:”全局性越低,控制权限越高“,也就是说,style.xml-1控制权限高于style.xml-2,因此如果同时影响某一控件的view风格的样式被设置,那么也就是直接使用 style="@style/xxxx"的权限高于主题权限。


try doing it


android 设置View控件的全局样式和风格

标签:android   style   io   ar   color   使用   sp   java   strong   

原文地址:http://my.oschina.net/ososchina/blog/353346

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!