11-2.Android 项目结构 - themes.xml 文件基础解读

themes.xml 文件基础解读

  • themes.xml 用于定义一个 Android 应用程序的主题
xml 复制代码
<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.MyTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>
</resources>
1、主题继承
xml 复制代码
<!-- Base application theme. -->
<style name="Theme.MyTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
	...
</style>
  1. 定义了一个名为 Theme.MyTheme 的自定义主题,它继承自 Theme.MaterialComponents.DayNight.DarkActionBar

  2. parent="Theme.MaterialComponents.DayNight.DarkActionBar" 表示 Theme.MyTheme 是基于 Theme.MaterialComponents.DayNight.DarkActionBar 构建的

  3. Theme.MaterialComponents.DayNight.DarkActionBar 是一个预定义的主题,提供了 Material Design 的样式,同时支持日间和夜间模式,并具有一个深色的 ActionBar

  • Material Design 可以理解为一种设计风格,ActionBar 是 应用中的顶部导航栏
2、主要品牌颜色
xml 复制代码
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
  1. colorPrimary 是主要品牌颜色,这个颜色通常用于工具栏、应用栏、按钮等元素的背景

  2. colorPrimaryVariant 是主要品牌颜色的变体,这个颜色通常用于需要稍微深一点或不同色调的主要颜色场景,例如,状态栏、某些按钮的按下状态等

  3. colorOnPrimary 是在主要颜色背景下的文本或图标颜色,它需要确保在深色背景上有足够的对比度

3、次要品牌颜色
xml 复制代码
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
  1. colorSecondary 是次要品牌颜色,这个颜色通常用于工具栏、应用栏、按钮等元素的背景

  2. colorSecondaryVariant 是次要品牌颜色的变体,这个颜色通常用于需要稍微深一点或不同色调的主要颜色场景,例如,状态栏、某些按钮的按下状态等

  3. colorOnSecondary 是在次要颜色背景下的文本或图标颜色,它需要确保在深色背景上有足够的对比度

4、状态栏颜色
xml 复制代码
<!-- Status bar color. -->
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
  • android:statusBarColor 是状态栏的颜色,这里使用了 ?attr/colorPrimaryVariant,即主要品牌颜色的变体
5、自定义
复制代码
<!-- Customize your theme here. -->
  • 开发者可以进一步自定义主题
相关推荐
向哆哆几秒前
Spring Boot快速开发:从零开始搭建一个企业级应用
java·spring boot·后端
gs8014016 分钟前
检查当前 Docker 使用的 默认运行时(default runtime)方法
java·开发语言·eureka
hello_ejb318 分钟前
聊聊Spring AI autoconfigure模块的拆分
java·人工智能·spring
每次的天空23 分钟前
Android单例模式知识总结
android·单例模式
wolfengi1 小时前
Idea Code Templates配置
java·ide·intellij-idea
Arenaschi1 小时前
运用fmpeg写一个背英文单词的demo带翻译
java·笔记·tcp/ip·其他·eclipse·maven
追随远方1 小时前
Android平台FFmpeg视频解码全流程指南
android·ffmpeg·音视频
一只蒟蒻ovo1 小时前
操作系统导论——第26章 并发:介绍
java·开发语言
老华带你飞1 小时前
音乐网站|基于SprinBoot+vue的音乐网站(源码+数据库+文档)
java·前端·数据库·vue.js·论文·毕设·音乐网站
熊文豪1 小时前
Java+Selenium+快代理实现高效爬虫
java·爬虫·selenium·隧道代理·快代理