您的位置:首页 > Web前端 > CSS

样式和主题

2015-07-26 22:31 651 查看
一、样式

样式是属性的集合,例如定义属性fontColor、fontSize、layout_width、layout_height等,以独立的资源文件存放在XML文件中,并设置样式的名称。

Android Style类似网页设计中的级联样式CSS设计思路,可以让设计与内容分离,并且可以方便的继承、覆盖、重用。

1.使用Style

首先,在res/values/下创建Style XML资源文件,这里创建的Style资源文件名命名为styles.xml,这个可以自己自定义。

styles.xml内容如下:

<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name="wrap_content">

<item name="android:layout_width">wrap_content</item>

<item name="android:layout_height">wrap_content</item>

</style>

</resources>

其中,style标签中name属性类似CSS中的class name,item标签中的name对应属性的名字,item标签对中的text对应属性的值。

2.使用样式:

<?xml version="1.0" encoding="utf-8"?>

<TextView

style="@style/wrap_content "

android:textColor="#00FF00"

android:text="@string/hello" />

3、样式的继承

有两种方式来实现继承,一是通过style的parent属性,二是使用类似CSS中的命名规则来实现。

一、通过parent属性

修改styles.xml

<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name="wrap_content">

<item name="android:layout_width">wrap_content</item>

<item name="android:layout_height">wrap_content</item>

</style>

<style name="inherit" parent="wrap_content">

<item name="android:textColor">#00FF00</item>

</style>

</resources>

新增名为inherit的样式,并且继承名为wrap_content样式,也就是说inherit具有wrap_content样式中定义的属性参数。

引用方式:style="@style/inherit"

二、通过命名规则实现

<?xml version="1.0" encoding="utf-8"?>

<resources>

<style name="wrap_content">

<item name="android:layout_width">wrap_content</item>

<item name="android:layout_height">wrap_content</item>

</style>

<style name="wrap_content.inherit">

<item name="android:textColor">#00FF00</item>

</style>

</resources>

</resources>通过“.”号实现继承。

引用方式:style="@style/wrap_content.inherit"

二、主题

针对应用中所有Activity或者针对某个Activity设置样式,可以通过编辑AndroidManifest.xml来完成。

1.设置应用中所有Activity活动的主题

<application android:theme="@style/wrap_content">

<application android:theme="@style/wrap_content">这样,应用中所有Activity中的所有组件都会默认使用包裹布局。

2.设置某个指定的Activity主题

<activity android:theme="@style/wrap_content">

另外,android提供了许多自带的主题样式。例如Theme.Dialog、Theme.Translucent等等。使用方式也很简单

<activity android:theme="@android :style/Theme.Dialog">

3、位置

在Android的frameworks/base/core/res/res/values目录下有一下几个文件:

themes.xml

themes_device_defaults.xml

styles.xml

styles_device_defaults.xml

三.样式与主题的区别

1.1样式应用于特殊的组件,主题应用与整个应用或整个Activity

1.2主题不仅单单显示内容的风格(大小、颜色),而且可以设置窗口的显示风格

1.3当主题的设置属性与样式的设置属相相同时,系统按样式的设置属性显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: