1.定义样式
在工程的res/values目录下新加一个样式文件,文件名可以随意,但后缀是xml。 该文件的根节点是<resources>,然后每个式样有一个style节点。style结点有唯一标识名称,在style下面是item,标识了各个属性的样式值。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<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>
</resources>
每个resources的节点都会在运行时,自动转变成resource对象,然后可以通过<style>的名称来引用。例如上面的样式可以这样引用:@style/CodeFont, 样式的parent属性是可选的,它可以指向一个已经定义好的style,并且在自定义的 style里的属性值会把parent的属性值覆盖掉。一个样式可以做为一个Activity的样式, 也可以做为一个Application的主题。
2.样式的继承
一个样式可以继承平台原有的样式,也可以继承自定义的样式。
继承平台原有的样式如下(一定要在parent里指定):
<style name="GreenText" parent="@android:style/TextAppearance">
<item name="android:textColor">#00FF00</item>
</style>
继承自定义的样式如下(可以不采用parent属性):
这种方式只要在style的name属性上加一个前缀就可以了。前缀名是自定义的那个style的名称,例如继承CodeFont的式样可以这样写:
<style name="CodeFont.Red">
<item name="android:textColor">#FF0000</item>
</style>
这种继承方式还可以不断继承下去:
<style name="CodeFont.Red.Big">
<item name="android:textSize">30sp</item>
</style>
具体一个style的item有哪些name呢?这个可以参考一个View的xml有哪些属性。所有的XML属性(XML Attributes)都可以在item中使用。对于所有可以引用的style属性,可以参考R.attr。并不是所有的View对象都会有相同的style 属性,但是如果给一个View使用了它不支持的属性后,该View只会对它支持的属性生效,其它的会被忽略。
3.使用Styles 和 Themes
在View中使用
<TextView
style="@style/CodeFont"
android:text="@string/hello" />
在application中使用
<application android:theme="@style/CustomTheme">
内置的styles 和 themes
<activity android:theme="@android:style/Theme.Dialog">
<activity android:theme="@android:style/Theme.Translucent">
可以在R.style类下面找到所有的内置style和themes。使用时要把style或themes的名称下划线改为点。 比如Theme_NoTitleBar
在使用时改为"@android:style/Theme.NoTitleBar"。
在Activity中使用
<activity android:theme="@style/CustomDialogTheme">
分享到:
相关推荐
jquery-ui-themes-1.8.12.zip google 社区 jquery-ui-theme ui 主题 资源
Gnome-OSC-HS--2-themes,包含Gnome-OSC-HS-(transparent)和Gnome-OSC-HS-(transparent),用于Ubuntu 18.04,仿mac风格,直接放入/usr/share/themes下就可以了使用
jquery-ui-themes-1.8.22.zip
geany-themes-master.zip主题包
还是很不好找的jquery-ui-themes-1.9.1官方版,使用很方便,免费下载使用
jquery-ui-themes-1.8.7样式
jquery-easyui-themes,easyui主题包,包含metro-blue metro-gray metro-green metro-orange metro-red ui-cupertino ui-dark-hive ui-pepper-grinder ui-sunny这些主题,具体的php使用方式见:...
Android Resource Navigator A Google Chrome Extension providing enhanced resource navigation...Quickly open the Android framework styles or themes XML via an always available browser action button. Frame
FolioReader-Android is an ePub reader and parser framework written in Java. Features [x] Custom Fonts [x] Custom Text Size [x] Themes / Day mode / Night mode [x] Text Highlighting [x] List / Edit / ...
jquery-ui-themes-1.10.3
Gnome-OSC-HS--2-themes.tar.xz ubuntu18.04 仿 mac 主题
PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台,在最近...Putty是一个免费的、Windows x86平台下的Telnet、SSH和rlogin客户端,但是功能丝毫不逊色于商业的Telnet类工具。
这是一个能让你的启动器高颜值的程序。它能自动的帮你生成你想要的界面。它提供了可视化的安装方法,操作简单,适用于大部分的ubuntu等linux系统的使用人员。它来源于github。
Laravel开发-platform-themes-lang-cs 捷克本地化到Cartalist平台
包括Android布局,弹窗,配色,单击事件,UI,精美炫酷的activity切换动画和空间动画,是新手必备的源码,内含相关的Dome 25件。 - - 文件夹 PATH 列表 卷序列号为 4E8D-6931 C:. │ .txt │ Android-UI-新手必备...
gedit-themes-master.zip
odoo-themes-free-源码.rar
离线安装包,亲测可用
dmz-cursor-themes-0.4-4.el6.noarch.rpm