Styles and Themes

A style is a collections of properties that specify the look and format of a view or window.

They allow to separate the design from the content.

Without Style XML, we can design it in the Layout XML:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#00FF00"
    android:typeface="monospace"
    android:text="@string/hello" />

With Style XML, we can turn it to:

<TextView
    style="@style/CodeFont"
    android:text="@string/hello" />

A theme is a style applied to an entire Activity of Application, rather than an individual view.

When a style is applied as a theme, every View in the Activity or application will apply each style property that it supports.

Then add an <item> element for each property of that style, with a name that declares the style property  and a value to go with it.

 

Defining Styles

The root node of the XML file must be <resources>.

For each style you want to create, add a <style> element to the file with a name that uniquely identifies the style.

Each child of the <resource> element  is converted into an application resource object at compile-time.

Example:

<?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>
 
Inheritance
The parent attribute in the <style> element lets you specify a style from which your style should inherit properties.
Example
<style name="GreenText" parent="@android:style/TextAppearance">
        <item name="android:textColor">#00FF00</item>
    </style>
 
Style properties
The best place to find properties that apply to a specific View is the corresponding class reference, which lists all of the supported attributes. 
Example

java.lang.Object

   ↳android.R.attr

public static final int textColor

Added in API level 1

Color of text (usually same as colorForeground).

May be a reference to another resource, in the form "@[+][package:]type:name" or to a theme attribute in the form "?[package:][type:]name".

May be a color value, in the form of "#rgb", "#argb", "#rrggbb", or "#aarrggbb".

Constant Value: 16842904 (0x01010098)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值