在Android中使用主题(Theme)和风格(Style)

本文介绍了Android开发中的主题和风格概念,展示了如何通过XML文件定义样式并应用于TextView等组件上,同时探讨了样式的继承机制及如何将主题应用于Activity或整个应用程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        主题是由一组应用到整个应用程序中的风格构成的。主题定义了应用程序中的各种外观。android中引入了主题和风格的概念。风格可以被应用到一个视图(View),而主题只能用到整个应用程序。


风格(Styles):


风格(Styles)用xml文件的格式定义,这些文件存放在工程项目中的res/values目录下。

以下是一个TextView的定义:

 
Cpp代码   收藏代码
  1. <TextView    android:layout_width="fill_parent"  
  2.      android:layout_height="wrap_content"  
  3.      android:textColor="#FFF"  
  4.      android:typeface="monospace"  
  5.      android:text="First Text View"  
  6.      android:background="#00F"  
  7.      />  
 

以上代码定义了一个TextView,包括文本框的宽度和高度,字体大小,字体格式,并且设置了蓝背景。

如果我们想用风格来实现同样的效果,我们首先要定义一个xml文件(style.xml),这个文件放在res/values目录下。如下所示:

 
Xml代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3. <style name="BlueLabel">  
  4. <item name="android:layout_width">fill_parent</item>  
  5. <item name="android:layout_height">wrap_content</item>  
  6. <item name="android:typeface">monospace</item>  
  7. <item name="android:background">#00F</item>  
  8. <item name="android:textColor">#FFF</item>  
  9. </style>  
  10. </resources>  
 

然后重新定义TextView文件:

 
Xml代码   收藏代码
  1. <TextView android:text="First Text View"  
  2.      style="@style/BlueLabel"  
  3.      />  
 

这样就能得到与之前同样的效果。
在<item>条目里可以添加任意的属性定义。


继承风格:

Android中的风格有很多有趣的特性,可以像CSS那样继承别的风格,例如:

我们有如下的一个针对button的风格定义:

 
Xml代码   收藏代码
  1. <style name="ButtonStyle">  
  2. <item name="android:layout_width">wrap_content</item>  
  3. <item name="android:layout_height">wrap_content</item>  
  4. <item name="android:textSize">15px</item>  
  5. <item name="android:typeface">serif</item>  
  6. </style>  
 

button看起来是这样的

我们可以让这个button继承BlueLabel,代码如下:

 
Xml代码   收藏代码
  1. <style name="ButtonStyle" parent="BlueLabel">  
 

button就成了这样


button从父风格文件里继承了蓝背景这个属性。


主题(Themes):

你可以将一个主题应用到整个应用程序,或只用到一个activity。

如果将主题应用到一个activity,那么这个activity中的所有widgets都会使用这个主题。

要实现这个功能,打开AndroidManifest.xml,添加如下代码

 
Xml代码   收藏代码
  1. <activity android:name=".StylesDemo"  
  2.                   android:label="@string/app_name" android:theme="@style/BlueLabel">  
 

如果要将主题应用到整个应用程序中,那么所有的activity都会使用这个主题,实现方法为:打开AndroidManifest.xml,添加如下代码

<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/BlueLabel">

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值