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日

相关文章

  • python3 selenium自动化测试 强大的CSS定位方法

    Python3 Selenium自动化测试强大的CSS定位方法 简介 Selenium是使用web驱动程序测试web应用程序的框架。Python3提供了Selenium库,使得复杂的web自动化测试变得容易。CSS定位是Selenium中最强大的定位方法之一。 CSS选择器 CSS选择器是CSS框架中用于选择元素的表达式。Selenium可以使用CSS选择器…

    css 2023年6月9日
    00
  • border-radius给元素添加圆角边框的方法

    当我们需要给元素添加圆角边框时,可以使用CSS属性border-radius来轻松实现。下面是关于如何使用border-radius属性来添加圆角边框的攻略: 一、使用border-radius属性添加圆角边框 1. 在CSS样式中设置border-radius属性 使用border-radius属性可以轻松设置元素的圆角边框,它接受一个或多个值,用空格分隔…

    css 2023年6月10日
    00
  • 使用JavaScript创建新样式表和新样式规则

    使用JavaScript创建新样式表和新样式规则可以非常方便地对网页进行样式控制和动态效果的实现。下面是创建新样式表和新样式规则的完整攻略。 创建新样式表 通过JavaScript可以动态地创建新的样式表,创建方式如下: // 创建新的样式表 var style = document.createElement(‘style’); style.type = …

    css 2023年6月9日
    00
  • 原生js实现移动开发轮播图、相册滑动特效

    实现移动开发轮播图、相册滑动特效的核心技术是原生JS实现手势识别和滑动控制。在实现前,需要明确以下几点: 滑动容器的尺寸及内部元素的数量 滑动方向和速度控制 原生JS实现手势识别技术 接下来,我将结合示例展开讲解: 示例一:移动轮播图 实现移动轮播图需要使用JS异步实现图片的加载和手势滑动的监听。以下是详细步骤: 第一步:布局 使用HTML布局画面容器及包含…

    css 2023年6月11日
    00
  • 利用div+jquery自定义滚动条样式的2种方法

    可能出于演示的需要,这个问题的格式不够规范,我先做一些处理再回答: 详细讲解 “利用 div + jQuery 自定义滚动条样式的 2 种方法” 的完整攻略 引言 使用自定义滚动条可以让你的网站看上去更现代化,在提高用户体验的同时也可以增强网站风格的统一性。本文将会详细讲解两种方法: 利用 ::-webkit-scrollbar 伪元素(需要使用 -webk…

    css 2023年6月10日
    00
  • 初学者简单学习CSS网页布局

    CSS(层叠样式表)是一种用于描述网页样式的语言,可以用于控制网页的布局、颜色、字体等方面。对于初学者来说,学习 CSS 网页布局是一个重要的基础。以下是关于初学者简单学习 CSS 网页布局的完整攻略。 步骤一:了解盒模型 在学习 CSS 网页布局之前,需要先了解盒模型。盒模型是指 HTML 元素在页面中所占据的空间,包括元素的内容、内边距、边框和外边距。以…

    css 2023年5月18日
    00
  • css3 旋转按钮 使用CSS3创建一个旋转可变色按钮

    CSS3旋转按钮是一种常用的Web界面元素,它可以让用户感受到Web应用程序与其他类型的应用程序一样丰富和复杂。下面是创建CSS3旋转按钮的完整攻略,包含了关键代码和示例说明。 使用CSS3创建一个旋转可变色按钮 用HTML创建一个按钮 首先,我们需要在HTML文件中创建一个按钮元素,可以使用button或a元素,例如: <button class=&…

    css 2023年6月9日
    00
  • 手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现

    要实现手机端图片缩放、旋转、全屏查看,可以使用PhotoSwipe.js插件。下面是详细的攻略步骤: 1. 引入PhotoSwipe插件 首先,在你的网站中引入PhotoSwipe插件的CSS和JS文件。可以从官方网站上下载最新版本:https://photoswipe.com/ <link rel="stylesheet" hre…

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