Android-UI设计

控件
控件是用户与应用交互的元素。常见的控件包括:
- 按钮 (Button):用于执行动作。
- 文本框 (EditText):让用户输入文本。
- 复选框 (CheckBox):允许用户选择或取消选择某个选项。
- 单选按钮 (RadioButton):用于在多个选项中选择一个。
- 下拉列表 (Spinner):提供一个选择列表。
- 图像视图 (ImageView):显示图片。
容器
容器用于组织和布局控件。常见的容器包括:
- 线性布局 (LinearLayout):按水平或垂直方向排列子控件。
- 相对布局 (RelativeLayout):子控件可以相对其他控件或父容器进行定位。
- 约束布局 (ConstraintLayout):灵活的布局方式,支持复杂的界面设计。
- 网格布局 (GridLayout):将控件排列成网格的形式
顶层容器
顶层容器是整个界面的基础,通常是应用的主布局。常见的有:
- Activity:代表一个单一的界面。
- Fragment:可以在Activity内重用,便于管理不同的界面部分。
中间容器
中间容器用于组织和布局控件,通常用于分组和控制排列方式。包括:
- LinearLayout:可以垂直或水平排列子控件。
- RelativeLayout:根据控件之间的关系进行布局。
- ConstraintLayout:用于更复杂的布局,支持灵活的控件定位。
安卓UI设计中,容器控件是用于组织和管理其他控件的布局元素。以下是一些常见的容器控件及其特点:
1. LinearLayout
- 特点:将子控件按线性方式排列,可以选择水平或垂直方向。
- 用途:简单的列表或表单布局。
2. RelativeLayout
- 特点:允许子控件相对其他控件或父容器进行定位。
- 用途:适合需要灵活排列控件的复杂布局。
3. ConstraintLayout
- 特点:通过约束方式实现灵活布局,能有效减少嵌套,提高性能。
- 用途:适合复杂界面,推荐用于现代应用。
4. FrameLayout
- 特点:用于堆叠子控件,后添加的控件会覆盖前面的控件。
- 用途:适合需要重叠显示的元素,例如图像叠加。
5. GridLayout
- 特点:将控件以网格形式排列,指定行和列。
- 用途:适合表格或卡片布局。
6. ScrollView
- 特点:提供滚动功能,通常只能包含一个子控件。
- 用途:适合内容超出屏幕的情况,便于用户查看。
7. ViewPager
- 特点:允许用户通过滑动手势在多个页面之间切换。
- 用途:常用于显示一系列的图像或界面。
8. TabLayout
- 特点:显示选项卡,用户可以通过点击不同的标签切换内容。
- 用途:适合分类展示不同类型的信息。
一般来讲ui文件为xml ,同时保存在res 中的layout文件夹下。并且有两种模式一种还是text和一种视图状态。
在Android界面XML中,根标签通常是一个布局控件,决定了界面的整体结构。常见的根标签包括:
1. LinearLayout
- 用于线性排列子控件。
2. RelativeLayout
- 允许控件相对定位。
3. ConstraintLayout
- 提供灵活的约束布局,适合复杂界面。
4. FrameLayout
- 用于简单堆叠子控件。
5. ScrollView
- 允许内容滚动,通常只包含一个直接子控件。
android 和api
Android版本(如Android 9)指的是操作系统的整体版本,包含了一系列功能和用户界面更新。而API级别(如API 35)则是开发者用来编写应用的接口版本,定义了可用的编程功能和特性。
实操ui设计


可以看到有很多控件,我们可以拖动。但是同样也可以修改对齐的标准。这一点只能靠自己摸索。感觉语言表达不出来。
相关文章:
Android-UI设计
控件 控件是用户与应用交互的元素。常见的控件包括: 按钮 (Button):用于执行动作。文本框 (EditText):让用户输入文本。复选框 (CheckBox):允许用户选择或取消选择某个选项。单选按钮 (RadioButton):用于在多个选项中…...
docker desktop windows stop
服务docker改为启动 cmd下查看docker版本 {"builder": {"gc": {"defaultKeepStorage": "20GB","enabled": true}},"experimental": false,"registry-mirrors": ["https://hub.atomgit.com/"]…...
Qt容器类控件——QGroupBox和QTabWidget
文章目录 QGroupBox又来点餐QTabWidget使用演示 QGroupBox 容器类控件即里面可以容纳其他的控件 QGroupBox叫做分组框,可以把其他控件放在里面作为一组 QGroupBox的存在,只是为了让界面更好看一点,并不实现实质性的功能。 当界面较复杂的时候…...
qt-creator-10.0.2之后版本的jom.exe构建和编译速度慢下来了
1、Qt的IDE一直在升级,qt-creator的新版本下载地址 https://download.qt.io/official_releases/qtcreator/ 2、本人一直用的是qt-creator-10.0.2版本,官网历史仓库可以下载安装包qt-creator-opensource-windows-x86_64-10.0.2.exe https://download.qt…...
ESP32-WROOM-32 [创建AP站点-TCP服务端-数据收发]
简介 ESP32 创建TCP Server AP站点, PC作为客户端连接站点并收发数据 指令介绍 注意,下面指令需要在最后加上CRLF, 也就是\r\n(回车换行) ATRESTORE // 恢复出厂设置 ATCWMODE2 // 设置 Wi-Fi 模式为 softAP ATCIPMODE0 // 需要数据传输模式改为0, 普通…...
工业机器视觉中的常见需求
目录 学习目的 熟系 Halcon的原因 专业性强: 高性能: 丰富的功能库 学习 OpenCV 的原因 开源与免费: 灵活性与可扩展性: 广泛的应用: 学习资源丰富: 总结 学习背景 工业视觉检测中常见分类 一、定…...
JavaWeb的Filter详解
过滤器Filter 什么是Filter? 依据字面上的中文意思为过滤器。Filter的作用 当用户的请求到达指定的URL之前,可以借助Filter来改变这些请求的内容;同样地,当响应结果到达客户端之前,可以使用Filter修改输出的内容。什么…...
【iOS】KVC的学习
【iOS】KVC的学习 文章目录 【iOS】KVC的学习前言KVC定义KVC设值KVC取值KVC使用keyPathKVC处理异常处理nil异常 KVC的一些应用修改动态的设置值实现高阶的消息传递 小结 前言 笔者简单学习了有关与KVC的相关内容,这里写一篇博客简单介绍一下相关内容。 KVC 定义 KV…...
影刀RPA实战:网页爬虫之药品数据
1 实战目标 这次给大家带来的实战示例是采集中国医药信息平台上的药品数据,主要获取药品名称,介绍,药品类型,处方类型,医保类型,参考价格,药品成分,性状,适应病症&#…...
python禁止位置传参函数
这种函数定义方式使用了 Python 3.x 中的关键字参数(keyword-only arguments)的特性,通过在参数列表中使用 * 符号作为分隔符,来明确指示该函数之后的参数必须使用关键字(即参数名)来传递,而不能…...
java面试题第一弹
Java 的基本数据类型有哪些? Java 的基本数据类型(primitive data types)包括以下八种: byte: 尺寸:1 字节(8 位)。范围:-128 到 127。用途:节省内存&#x…...
住宅HTTP代理:提升网络隐私与安全的新选择
在互联网时代,我们的在线隐私和安全变得越来越重要。无论是浏览网页、进行在线交易,还是访问受限内容,住宅HTTP代理都能为我们提供一种可靠的解决方案。今天,我们就来深入探讨一下住宅HTTP代理,看看它是如何帮助我们提…...
字符串函数(2)
目录 前言1. strlen1.1 strlen函数的理解和使用1.2 strlen函数的模拟实现 2. strcpy2.1 strcpy函数的理解和使用2.2 strcpy函数的模拟实现 3.strcat3.1 strcat函数的理解和使用3.2 strcat 函数的模拟实现 前言 在上一篇文章中,我们对字符分类函数和字符转换函数进行…...
Linux--守护进程与会话
进程组 概念 进程组就是一个或多个进程的集合。 一个进程组可以包含多个进程。 下面我们通过一句简单的命令行来展示: 为什么会有进程组? 批量操作:进程组允许将多个进程组织在一起,形成一个逻辑上的整体。当需要对多个进程…...
C++ 笔试常用算法模板
C 笔试常用算法模板 一、二叉树遍历DFSBFS 二、回溯模板三、动态规划01背包朴素版本滚动数组优化 完全背包朴素版本滚动数组优化 最长递增子序列朴素版本贪心二分优化 最长公共子序列最长回文子串 四、图建图邻接矩阵邻接表 图的遍历DFSBFS 拓扑排序并查集最小生成树Kruskalpri…...
李宏毅2023机器学习作业HW07解析和代码分享
ML2023Spring - HW7 相关信息: 课程主页 课程视频 Kaggle link 回来了 : ) Sample code HW07 视频 HW07 PDF 个人完整代码分享: GitHub | Gitee | GitCode P.S. HW7 的代码都很易懂,可以和 2024 年的新课:生成式AI导论做一个很好的衔接&#…...
ansible远程自动化运维、常用模块详解
一、ansible是基于python开发的配置管理和应用部署工具;也是自动化运维的重要工具;可以批量配置、部署、管理上千台主机;只需要在一台主机配置ansible就可以完成其它主机的操作。 1.操作模式: 模块化操作,命令行执行…...
【若依框架】按时间查询数据的操作
【若依框架】按时间查询数据的操作 若依框架按起止时间查询数据示例: Date tempDate DateUtil.offsetDay(new Date(), -days);Map<String, Object> map new HashMap<>();map.put("beginRecordTime", DateUtil.beginOfHour(tempDate));map.…...
人工智能将来好就业吗?
人工智能将来好就业吗? 随着科技的不断进步,人工智能(AI)正逐渐成为推动全球经济发展的核心力量之一。从智能机器人到自动驾驶汽车,从语音识别到图像分析,AI正在改变我们的工作方式以及我们与世界的互动方式。那么&am…...
JAVA SE 11
文章目录 JDK 11 特性介绍语法增强1. String类的增强2. Optional类的增强3. 新的HTTP/2客户端4. var关键字的扩展5. Collection接口的增强 语法改进JDK 11引入的一些语法改进 详细介绍1. 模块化系统(Java平台模块系统,JPMS)2. HTTP客户端3. 改…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...
stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...
LLaMA-Factory 微调 Qwen2-VL 进行人脸情感识别(二)
在上一篇文章中,我们详细介绍了如何使用LLaMA-Factory框架对Qwen2-VL大模型进行微调,以实现人脸情感识别的功能。本篇文章将聚焦于微调完成后,如何调用这个模型进行人脸情感识别的具体代码实现,包括详细的步骤和注释。 模型调用步骤 环境准备:确保安装了必要的Python库。…...
leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...
