Android开发 — UI界面之threme和style

Android开发 -- UI界面之theme和style

什么是theme和style

在Android开发中,theme和style都是用来定义UI界面样式的属性。其中,theme是一种整体的样式方案,可以在AndroidManifest.xml文件中定义,对整个应用程序生效;而style是一组UI控件封装的样式,通常保存在styles.xml文件中,可以在应用程序中任意使用。

如何定义theme和style

定义theme

要定义一个theme,我们需要在AndroidManifest.xml文件中添加如下代码:

<application
    android:theme="@style/AppTheme">
    ...
</application>

这里的@style/AppTheme表示我们要使用项目中定义的样式方案。样式方案的定义,我们要在styles.xml文件中进行,如下:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

这里我们定义了一个名为AppTheme的样式,将它的parent属性设为了Theme.AppCompat.Light.NoActionBar,表示继承自Android系统提供的Theme.AppCompat.Light.NoActionBar样式方案。另外,我们还为它定义了三个颜色属性,分别为colorPrimary,colorPrimaryDark和colorAccent,这些属性可以在应用程序中任意使用。

定义style

要定义style,我们需要在styles.xml文件中添加如下代码:

<style name="MyButtonStyle" parent="Widget.AppCompat.Button">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textSize">16sp</item>
    <item name="android:textColor">@color/colorAccent</item>
    <item name="android:background">@drawable/btn_bg</item>
</style>

这里我们定义了一个名为MyButtonStyle的样式,继承自Widget.AppCompat.Button样式,表示该样式作用于Button控件。我们对它的属性进行了设定,比如设置Button控件的宽高,字体大小、颜色,以及背景图片等等。

如何应用theme和style

应用theme

应用theme非常简单,只需要在AndroidManifest.xml文件中为你的Application节点添加android:theme属性,值为你定义的theme样式名即可,如下:

<application
    android:theme="@style/AppTheme">
    ...
</application>

应用style

应用style也很简单,只需要在布局文件中为需要添加样式的UI控件的style属性指定你定义的样式即可,如下:

<Button
    android:id="@+id/btn_login"
    style="@style/MyButtonStyle"
    android:text="登录" />

这里我们将MyButton适用于Button控件,用来定义按钮的样式。

示例

示例1:定义自己的主题

  1. 在styles.xml中定义自己的主题
<style name="MyTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

这里我们定义了一个名为MyTheme的主题,继承自Theme.AppCompat.Light.NoActionBar主题,也为该主题定义了三个颜色属性。

  1. 在AndroidManifest.xml中指定该主题
<application
    android:theme="@style/MyTheme">
    ...
</application>

这里我们为Application指定了我们定义的MyTheme主题。

示例2:定义自己的样式

  1. 在styles.xml中定义自己的样式
<style name="MyEditTextStyle" parent="Widget.AppCompat.EditText">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textSize">16sp</item>
    <item name="android:textColor">@color/colorAccent</item>
    <item name="android:background">@drawable/edt_bg</item>
    <item name="android:padding">10dp</item>
</style>

这里我们定义了一个样式名为MyEditTextStyle,继承自Widget.AppCompat.EditText,也为该样式定义了EditText控件使用的各种属性,包括宽高,字体颜色,背景,之后我们就可以通过MyEditTextStyle来定义EditText。

  1. 在布局文件中使用自己定义的样式
<EditText
    android:id="@+id/et_username"
    style="@style/MyEditTextStyle"
    android:hint="请输入用户名" />

这里我们将MyEditTextStyle样式作用于EditText控件,定义EditText的样式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android开发 — UI界面之threme和style - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • React前端框架实现原理的理解

    React是一个热门的前端框架,它提供了一种基于组件化的方式去构建用户界面。React具有高度的灵活性和可重用性,是Web开发中的必备工具。想要深入了解React,我们需要先理解其实现原理。下面,我们将讲解React的核心概念和实现原理,通过两个示例说明React的运行机制。 React的核心概念 组件 组件是React的核心概念。组件是一个可重用的代码块,…

    css 2023年6月11日
    00
  • 在sql Server自定义一个用户定义星期函数

    在SQL Server中自定义一个用户定义星期函数,可以使用以下步骤: 1. 创建一个新的SQL Server项目 在SQL Server Management Studio中,选择“文件”->“新建”->“项目”->“SQL Server”->“SQL Server Database项目”。 2. 添加新的用户定义函数 在项目中,右…

    css 2023年6月9日
    00
  • 使用Html5、CSS实现文字阴影效果

    那么首先我们需要了解一下什么是文字阴影效果。文字阴影是给字体添加一个阴影,使其在页面中看起来更具有层次感,更加突出。使用 HTML5 和 CSS 实现文字阴影效果的方法有多种,下面我将为你提供其中两种使用示例。 方法一 在 HTML 中,使用 h1 标签创建一个标题。 <h1>这是一个标题</h1> 在 CSS 中,使用 text-s…

    css 2023年6月9日
    00
  • jquery插件实现鼠标隐藏

    实现鼠标隐藏需要通过 jQuery 插件的方式,下面是具体的实现攻略: 步骤一:创建 jQuery 插件 先创建一个名为 jquery.mouseHide.js 的文件,将以下代码放入其中,以创建一个名为 mouseHide 的插件。 (function( $ ) { $.fn.mouseHide = function() { var timer; this…

    css 2023年6月10日
    00
  • 闭合浮动元素超级简单的方法

    下面是详细讲解“闭合浮动元素超级简单的方法”的完整攻略。 什么是闭合浮动? 当一个元素浮动时,它将会脱离文档流,而其他元素将会绕开它。这时如果父元素没有设置高度或者内部没有包含一个清除浮动的元素,就会出现高度塌陷的问题。这种情况称为浮动元素没有闭合,需要手动进行闭合。 传统的闭合浮动方法 在传统的闭合浮动方法中,你需要在浮动元素后面添加一个空的元素,并给其添…

    css 2023年6月9日
    00
  • CSS教程:媒体类别语法

    CSS教程:媒体类别语法 什么是媒体类别 媒体类别(Media Queries)就是一种用于查询设备特征和状态的CSS语法。通过媒体类别,我们能够针对不同的设备屏幕大小、分辨率、浏览器类型等等,为网站提供不同的CSS样式,使网站在不同设备上拥有更好的用户体验。 如何使用媒体类别 使用媒体类别,需要将CSS规则套用在一个@media规则块中。一个@media规…

    css 2023年6月9日
    00
  • Dreamever如何嵌入css样式?html嵌入css方法介绍

    Dreamweaver 是一款常用的网页制作工具,可以通过它来嵌入 CSS 样式表。以下是关于“Dreamweaver 如何嵌入 CSS 样式?HTML 嵌入 CSS 方法介绍”的完整攻略。 步骤一:创建 HTML 文件 首先,需要在 Dreamweaver 中创建一个 HTML 文件。可以通过以下步骤操作: 打开 Dreamweaver 软件。 点击“文件…

    css 2023年5月18日
    00
  • css3 实现元素弧线运动的示例代码

    实现元素弧线运动的示例代码需要使用到 CSS3 的 animation 和 transform 属性,下面是实现步骤: 1. 确定元素 首先需要确定需要进行弧线运动的元素,例如这里选择使用 div 元素作为样例: <div class="arc"></div> 2. 定义样式 接下来需要定义元素的样式,可以将该元素…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部