Android 2.2 API demos -- theme style

2024-03-25 02:18
文章标签 android api 2.2 style theme demos

本文主要是介绍Android 2.2 API demos -- theme style,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

style和theme的概念

现在借鉴官方的文档,总结一下style和theme的相关概念。

style是一个包含一种或者多种格式化属性的集合,可以将其作为一个单位用在layout XML的单个view上。 比如,可以定义一种style来规定文本的文字大小和颜色,然后将其应用于一个特定的view。

theme是一个包含一种或者多种格式化属性的集合,可以将其作为一个单位用在整个application或者其中某个activity上。比如,可以定义一个theme,其中定义的文字的大小和颜色,然后将其应用于某个activity,那么这个activity中的所有文本就都是这种样式了。

定义style

1. 在res/values/目录下新建一个XML文件。
2. XML文件的大体格式如下,根节点是<resources>,每一个style对应一个<style>元素,style里的每一种格式化属性对应一个<item>元素。

<?xml version="1.0" encoding="utf-8"?><resources><style name="ImageView240dpi"><item name="android:src">@drawable/stylogo240dpi</item><item name="android:layout_width">wrap_content</item><item name="android:layout_height">wrap_content</item>
</style>
</resources>


3. item的值可以是fill_parent等关键字,也可以引用其它的资源类型,例如,

<?xml version="1.0" encoding="utf-8"?><resources><style name="CustomTheme"><item name="android:windowNoTitle">true</item><item name="windowFrame">@drawable/screen_frame</item><item name="windowBackground">@drawable/screen_background_white</item><item name="panelForegroundColor">#FF000000</item><item name="panelBackgroundColor">#FFFFFFFF</item><item name="panelTextColor">?panelForegroundColor</item><item name="panelTextSize">14</item><item name="menuItemTextColor">?panelTextColor</item><item name="menuItemTextSize">?panelTextSize</item></style></resources>


用@符号和?符号来引用资源。@表明我们引用的资源是其它地方定义过的(也许在这个项目中或者在Android框架中)。?表明我们引用的资源的值在当前加载的主题中。这通过以名字引用特定的<item>来完成(比如,panelTextColor使用了分配给panelForegroundColor的相同颜色)。这种技巧只能用在XML资源当中。

4. <style>中的parent属性可以使一个style继承另一个style的属性。
既可以继承Android平台上的预定义style:

<style name="GreenText" parent="@android:style/TextAppearance"><item name="android:textColor">#00FF00</item>    
</style>


又可以继承自己定义的style,当继承自己定义的style时,可以不使用parent属性,只需要在name里加上被继承的style的name作为前缀即可:

<style name="GreenText.Red" parent="@android:style/TextAppearance">   <item name="android:textColor">#FF0000</item>    
</style>


 

使用style

1. 将style使用在view上。

<TextView style="@style/GreenText.Red" android:text="@string/hello" />


2. 将style应用在activity上。
  见官方custom dialog示例。

 

<activity android:name=".app.CustomDialogActivity"android:label="@string/activity_custom_dialog"android:theme="@style/Theme.CustomDialog"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.SAMPLE_CODE" /></intent-filter>
</activity>


3. 将style应用在application上。

<application android:name="ApiDemosApplication"android:label="@string/activity_sample_code" android:theme="@style/Theme.CustomDialog"android:icon="@drawable/app_sample_code">

 

4. 在Java代码中应用style。

protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    ...    setTheme(android.R.style.Theme_Light);    setContentView(R.layout.main);}


 


5. 当你将一个style应用在viewgroup上时,它的内部view不会继承这些样式。

 

 

这篇关于Android 2.2 API demos -- theme style的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/843547

相关文章

使用Go调用第三方API的方法详解

《使用Go调用第三方API的方法详解》在现代应用开发中,调用第三方API是非常常见的场景,比如获取天气预报、翻译文本、发送短信等,Go作为一门高效并发的编程语言,拥有强大的标准库和丰富的第三方库,可以... 目录引言一、准备工作二、案例1:调用天气查询 API1. 注册并获取 API Key2. 代码实现3

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.