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. -->
  • 开发者可以进一步自定义主题
相关推荐
小羊没烦恼!5 小时前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
俊昭喜喜里6 小时前
java中的继承和多态的区别
java
小羊没烦恼!6 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
譕痕6 小时前
JSONObject与JSONArray封装数据格式区别
java·json
千里马学框架6 小时前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台6 小时前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
胡写代码6 小时前
别再前后端各写一套表单校验了
java·后端
小鱼能吃糖6 小时前
缺陷修复总览 · mall电商项目:5类缺陷,1个病根,4个业务域
java·电商
AFinalStone6 小时前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
此时不提桶,更待何时7 小时前
01-06-A-JVM排查实战详解
java·jvm