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

相关文章

SpringBoo WebFlux+MongoDB实现非阻塞API过程

《SpringBooWebFlux+MongoDB实现非阻塞API过程》本文介绍了如何使用SpringBootWebFlux和MongoDB实现非阻塞API,通过响应式编程提高系统的吞吐量和响应性能... 目录一、引言二、响应式编程基础2.1 响应式编程概念2.2 响应式编程的优势2.3 响应式编程相关技术

java中4种API参数传递方式统一说明

《java中4种API参数传递方式统一说明》在Java中,我们可以使用不同的方式来传递参数给方法或函数,:本文主要介绍java中4种API参数传递方式的相关资料,文中通过代码介绍的非常详细,需要的... 目录1. 概述2. 参数传递方式分类2.1 Query Parameters(查询参数)2.2 Path

Java调用DeepSeek API的8个高频坑与解决方法

《Java调用DeepSeekAPI的8个高频坑与解决方法》现在大模型开发特别火,DeepSeek因为中文理解好、反应快、还便宜,不少Java开发者都用它,本文整理了最常踩的8个坑,希望对... 目录引言一、坑 1:Token 过期未处理,鉴权异常引发服务中断问题本质典型错误代码解决方案:实现 Token

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

使用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 中手