如何在安卓中使用风格构建材质和黑暗主题应用?
原文:https://www . geesforgeks . org/how-to-build-material-and-dark-themes-apps-使用安卓风格/
为了增加安卓应用的用户流量,需要调整安卓应用的主题和风格。在当今的移动应用程序开发中,还需要考虑应用程序的外观和感觉。应用程序用户需求的一个主要特征是黑暗主题。安卓设备的默认主题是黑暗的,直到安卓棒棒糖(5.0),但安卓 Q 在 2019 年第三季度发布。大多数应用程序都实现了暗主题版本的应用程序。在这篇文章中,已经说明了如何实现安卓应用程序的材质黑暗主题版本。
为什么是黑暗主题?
深色主题会降低移动设备屏幕发出的亮度,从而减轻眼睛疲劳。同时保持最小的色彩对比度。这也有助于应用程序的功能设计。消耗更少的电池电量,适应当前的光线条件。带有有机发光二极管显示屏的设备可以适应黑暗主题。最重要的是,黑暗主题版本的应用程序有更多的粉丝。
了解风格和主题的区别
- 安卓开发者见证了风格和主题的模糊性。原因是在安卓系统中只有标签名称 <样式>没有 <主题> 标签可用。
- *Style 是定义一个 单个 视图外观的属性集合。样式属性是字体、颜色、大小、背景颜色等。例如,标题和正文的字体大小可能不同。*
- *【主题】相反,适用于整个 app,或活动,或视图层次,而不仅仅是针对单个视图。主题还可以将样式应用于非视图元素,如状态栏、窗口背景等。例如,颜色主要应用于整个应用程序的所有浮动操作按钮或正常按钮。人们可以从下图中得到不同之处。*
**
- *上图可以清楚地看出《风格》和《主题》的区别。其中样式应用于父视图组内的特定视图,但主题应用于整个父视图组。*
- *但是风格和主题是密切相关的。例如,浮动操作按钮和普通可点击按钮可以分别有不同的颜色,如颜色主要和颜色次要。*
**材料主题属性****
*在安卓应用中实现功能素材主题的 3 个主要属性是:*
- *颜色*
- *排印*
- *形状*
-
*材料设计组件*
-
*关于这些属性的基本信息可以参考安卓系统中的材料设计介绍*
- *人们可能已经在安卓工作室(4.1 及以上版本)的最新更新中看到了颜色属性的不同。这些是:*
**原色变体:****
**次要颜色变体:****
**表面颜色:****
**错误颜色:****
**排版:****
*在材料设计排版系统中,有预定义的和精心设计的文本排版变体。请看下图:*
**
*默认情况下,这些是材质设计主题附带的属性,可以根据应用程序中文本的上下文直接应用于文本视图。*
**实现应用的黑暗主题变体的步骤****
**第一步:创建空活动 Android Studio 项目:****
*创建一个空的活动 Android Studio 项目,并选择 Kotlin 作为编程语言。参考安卓|如何在安卓工作室创建/启动新项目?。*
**第二步:添加需要的依赖关系****
- *将以下依赖项添加到应用程序级渐变文件中,并同步项目。*
- *然而,默认情况下,这种依赖性是在创建新的安卓工作室(4.0 及以上版本)项目时添加的。*
*实现' com . Google . Android . material:material:1 . 3 . 0-alpha 04 '*
**第三步:添加主次品牌颜色****
- *我们需要主要决定原色和次原色,并从中提取颜色代码。在这种情况下,原色是绿色,作为补充,红色 _200 和红色 _700 是次要品牌颜色。*
- *可以使用这个或者这个制作自己的色板和组合。*
- *调用以下颜色在 colors.xml 文件内的应用程序中实现相同的颜色。*
*可扩展标记语言*
**<?xml version="1.0" encoding="utf-8"?>
<resources>
<!--Primary colors of the application-->
<color name="green_200">#98d5b0</color>
<color name="green_light">#e5f5eb</color>
<color name="green_500">#18ad62</color>
<color name="green_700">#008c4c</color>
<!--Secondary brand color of the application-->
<color name="red_200">#eb8baf</color>
<color name="red_700">#b31058</color>
<!--Other surface colors and red for error color-->
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="red">#B00020</color>
</resources>**
**第 4 步:使用主题. xml 文件****
- *首先,将昼夜暗动作栏主题应用于应用程序的亮主题和暗主题,如下所示:*
**<风格名称=“主题”。GFGArticle" parent= "主题。>****
- *按照上面讨论的材料设计指南提供的颜色系统,下面是应用于应用程序的浅色主题和深色主题的颜色系统。*
- *当应用程序处于灯光主题下时,将应用下列值\theme.xml。*
*可扩展标记语言*
**<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.GFGArticle" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/green_500</item>
<item name="colorPrimaryVariant">@color/green_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" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>**
- *当应用程序处于黑暗主题下时,将应用以下值-night\themes.xml。*
*可扩展标记语言*
**<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.GFGArticle" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/green_200</item>
<item name="colorPrimaryVariant">@color/green_700</item>
<item name="colorOnPrimary">@color/black</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/red_200</item>
<item name="colorSecondaryVariant">@color/red_200</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>**