当前位置: 首页 > article >正文

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

themes.xml 文件基础解读

  • themes.xml 用于定义一个 Android 应用程序的主题
<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、主题继承
<!-- 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、主要品牌颜色
<!-- 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、次要品牌颜色
<!-- 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、状态栏颜色
<!-- Status bar color. -->
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
  • android:statusBarColor 是状态栏的颜色,这里使用了 ?attr/colorPrimaryVariant,即主要品牌颜色的变体
5、自定义
<!-- Customize your theme here. -->
  • 开发者可以进一步自定义主题

http://www.kler.cn/a/506909.html

相关文章:

  • VD:生成a2l文件
  • 【cs.CV】25.1.15 arxiv更新速递
  • Java中如何实现对象的深拷贝和浅拷贝?
  • 基于Linux系统指令使用详细解析
  • 【学习笔记】Macbook管理多个不同的Python版本
  • 【dockerros2】ROS2节点通信:docker容器之间/docker容器与宿主机之间
  • 微信小程序web-view 外链白屏, 分享后白屏?
  • 解决关于Xcode16提交审核报错
  • 11-3.Android 项目结构 - 认识 .idea 目录
  • 如何在QT中保证线程是安全的?
  • 多包单仓库(monorepo)实现形式
  • 代码随想录算法【Day22】
  • 零基础入门uniapp Vue3组合式API版本
  • uniApp开通uniPush1.0个推,SpringBoot集成uniPush1.0个推
  • SDL2:PC端编译使用
  • dockerfile1.0
  • 【使用EasyExcel快速实现数据下载到Excel功能】
  • Vue进阶之Vue3后台系统
  • 【C#】WPF项目,项目目录文件解析、WinForms 和 WPF 的概念及其区别与联系
  • Spring boot面试题---- Spring boot项目运行原理
  • 基于Python SciPy的拥塞控制算法模拟
  • 【.net core】【sqlsugar】时间查询示例
  • tui-editor报错
  • 【数据结构练习题】栈与队列
  • ThreeJs功能演示——几何体操作导入导出
  • YOLOv8改进,YOLOv8检测头融合RFAConv卷积,并添加小目标检测层(四头检测),适合目标检测、分割等