📜  Android-样式和主题

📅  最后修改于: 2021-01-05 04:56:59             🧑  作者: Mango


样式资源定义格式并查找UI。可以将样式应用于单个View(从布局文件中)或应用于整个Activity或应用程序(从清单文件中)。

定义样式

在XML资源中定义了一种样式,该样式与指定布局的XML分开。该XML文件位于项目的res / values /目录下,并将作为根节点,这是样式文件所必需的。 XML文件的名称是任意的,但必须使用.xml扩展名。

您可以使用

的值可以是关键字字符串,十六进制颜色,对另一种资源类型的引用或其他值,具体取决于style属性。

使用样式

定义样式后,可以使用style属性在XML布局文件中使用它,如下所示:




   


要了解与Android风格相关的概念,可以查看风格演示示例

样式继承

Android支持样式继承的方式与网页设计中级联样式表的方式非常相似。您可以使用它来继承现有样式的属性,然后仅定义要更改或添加的属性。

要实现自定义主题,请创建或编辑MyAndroidApp / res / values / themes.xml并添加以下内容-


   ...
   
   ...

在您的AndroidManifest.xml中,将主题应用于您要设置样式的活动-


您的新主题将应用于您的活动,并且文本现在变为鲜红色。

主题

将颜色应用于主题属性

然后,可以通过将元素添加到自定义主题,将颜色资源应用于某些主题属性,例如窗口背景和主文本颜色。这些属性在您的styles.xml文件中定义。例如,要将自定义颜色应用于窗口背景,请在MyAndroidApp / res / values / styles.xml文件中定义的自定义主题中添加以下两个元素:


   ...
   
   ...

主题

使用带有按钮的自定义九补丁

九补丁可绘制对象是一种特殊的图像,可以在保持视觉完整性的同时在宽度和高度上缩放。九个补丁是指定Android按钮外观的最常见方法,尽管可以使用任何可绘制类型。

九个补丁按钮

九补丁按钮示例

创建九个补丁按钮的步骤

  • 将此位图另存为/res/drawable/my_nine_patch.9.png
  • 定义新样式
  • 将新按钮样式应用于自定义主题的buttonStyle属性

定义新样式


   ...
      
   ...

套用主题


   ...
      
   ...

主题

Android主题

希望您了解样式的概念,所以现在让我们尝试了解什么是主题。主题不过是应用于整个活动或应用程序而不是单个视图的Android样式。

因此,将样式用作主题时,活动或应用程序中的每个视图都将应用其支持的每个样式属性。例如,您可以将相同的CustomFontStyle样式用作Activity的主题,然后该Activity内的所有文本将具有绿色等宽字体。

要为应用程序的所有活动设置主题,请打开AndroidManifest.xml文件并编辑标记,以将android:theme属性包含为样式名称。例如-


但是,如果要将主题仅应用到应用程序中的一个Activity,则将android:theme属性仅添加到标签。例如-


Android定义了许多默认主题,您可以直接使用它们,也可以使用parent属性继承它们,如下所示:


要了解与Android主题相关的概念,可以查看主题演示示例

样式调色板

布局设计可以基于它们的颜色来实现,例如,以下设计基于它们的颜色(蓝色)

主题

上面的布局是基于style.xml文件设计的,其中放置在res / values /


   
    

默认样式和主题

Android平台提供了可在您的应用程序中使用的大量样式和主题。您可以在R.style类中找到所有可用样式的引用。若要使用此处列出的样式,请将样式名称中的所有下划线都替换为句点。例如,您可以将Theme_NoTitleBar主题与“ @android:style / Theme.NoTitleBar”一起应用。您可以查看以下Android样式和主题的源代码-