Android 视图系统入门指南

1. View:界面的最小单位

  • 本质:屏幕上的一个矩形区域,能显示内容或接收触摸。
  • 比喻:就像乐高积木,是组成界面的最小单位。
  • 常见子类
    • TextView(文字积木)、Button(按钮积木)、ImageView(图片积木)。
  • 关键方法
    • setText()setBackgroundColor()setOnClickListener()
       
    • ******************************************************************************************

2. ViewGroup:收纳盒和组织者

  • 本质:特殊的 View,能装下其他 View 和 ViewGroup,形成层级结构。
  • 比喻:就像乐高收纳盒,可以把积木按规则排列。
  • 常见子类
    • LinearLayout(排队收纳盒)、RelativeLayout(相对位置收纳盒)、ConstraintLayout(现代灵活收纳盒)。
  • 关键方法
    • addView()removeView()getChildAt()
    • *************************************************************************************

3. LayoutParams:摆放说明书

  • 本质:告诉 ViewGroup 如何摆放子 View 的 "规则"。
  • 比喻:就像乐高积木的拼搭说明书,指定积木的大小和位置。
  • 常见属性
    • width/height(大小)、gravity(对齐方式)、margin(边距)。
  • 注意
    • 不同 ViewGroup 有自己的 LayoutParams(如LinearLayout.LayoutParams
    • **************************************************************************************

4. MarginLayoutParams:带边距的豪华说明书

  • 本质LayoutParams的子类,增加了边距(margin)功能。
  • 比喻:普通说明书只能拼积木,豪华版还能指定积木之间的距离。
  • 关键属性
    • marginLeft/Top/Right/Bottom(四边边距)。
// 1. 创建一个TextView(乐高积木)
TextView textView = new TextView(this);
textView.setText("Hello");// 2. 创建一个LinearLayout(收纳盒)
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);// 3. 给TextView设置摆放规则(说明书)
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, // 宽度:包裹内容LinearLayout.LayoutParams.WRAP_CONTENT  // 高度:包裹内容
);
params.topMargin = 20; // 上边距20像素
textView.setLayoutParams(params);// 4. 将TextView放入LinearLayout(把积木放进收纳盒)
layout.addView(textView);// 5. 将LinearLayout添加到Activity(把收纳盒放到房间里)
setContentView(layout);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【走好求职第一步】求职OMG——见面课测验4

2025最新版!!!6.8截至答题,大家注意呀!博主码字不易点个关注吧~~ 1.单选题(2分) 下列不属于简历撰写技巧原则的是( A ) A.具体性 B.相关性 C.匹配性 2.单选题(2分) 笔试的下一步一般是:( B &…

瀚文(HelloWord)智能键盘项目深度剖析:从0到1的全流程解读

瀚文(HelloWord)智能键盘项目深度剖析:从0到1的全流程解读 一、项目整体概述 瀚文(HelloWord)智能键盘是一款多功能、模块化的智能机械键盘,由三大部分组成:键盘输入模块、可替换的多功能交互…

国产安路FPGA实现图像视频采集转HDMI输出,提供5套TD工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐我已有的所有工程源码总目录----方便你快速找到自己喜欢的项目国产安路FPGA相关方案推荐 3、设计思路框架工程设计原理框图输入Sensor之-->GC0308摄像头输入Sensor之-->OV7725摄像头输入Sensor之-->OV5640摄像头输入Sens…

35 C 语言字符串转数值函数详解:strtof、strtod、strtold(含 errno 处理、ERANGE 错误)

1 strtof() 函数 1.1 函数原型 #include <stdlib.h> // 必须包含这个头文件才能使用 strtof() #include <errno.h> // 包含 errno 和 ERANGE #include <float.h> // 包含 FlOAT_MAX 和 FLOAT_MIN #include <math.h> // 包含 HUGE_VALF(inf)float…

PaddleOCR项目实战(1):Python脚本中使⽤PaddleOCR

1 项目介绍 项目架构如下&#xff1a; APP/WEB/⼩程序为OCR识别接⼝调⽤端&#xff0c;调⽤OCR接⼝&#xff0c;实现OCR功能。本项⽬我们只实现Android APP开发。Nginx反向代理和负载均衡功能&#xff0c;通过Nginx实现对外⽹暴露接⼝&#xff0c;对内负载均衡SpringBoot实现的…

Reranker + BM25 + FAISS 构建高效的多阶段知识库检索系统一

一、什么是知识库检索&#xff1f; 在构建基于大语言模型的问答系统&#xff08;如 RAG&#xff09;中&#xff0c;知识库检索&#xff08;Retrieval&#xff09; 是第一步&#xff0c;也是影响最终回答质量的关键环节。它负责从大规模文档中快速定位与用户问题最相关的 top-k…

Walle-Web:打造轻量级高效的DevOps自动化部署平台

在当今快速迭代的开发环境中,高效的代码部署工具已成为团队不可或缺的基础设施。Walle-Web作为一款免费开源的DevOps平台,专注解决"部署难、管理乱"的痛点问题,为开发团队提供了简洁而强大的自动化部署解决方案。 1. 什么是Walle-Web? Walle-Web是一款专注于代码…

力扣LeetBook数组和字符串--二维数组

1.旋转矩阵 题目链接 想了那么久的各种旋转&#xff0c;对角线&#xff0c;其实把问题搞复杂了。 旋转90度的本质无非就是转置镜像对称 转置是什么&#xff1f;&#xff1a;将矩阵的行和列互换。 镜像对称&#xff1a;把矩阵从中间对折&#xff0c;互换位置 矩阵 A A [ 1 3 0…

图论水题2

div2 361 D. Tree Requests 题意 对于一颗 n n n节点的树&#xff0c;每个节点有一个字母&#xff0c;有 m m m次询问&#xff0c;每次询问求对于顶点 v v v的子树中深度为 h h h的结点能否组成一个回文串$ (1 \leq n \leq m \leq 5 \cdot 10^5) $ 思路 关于 v v v的子树结…

Redis 过期了解

Redis 版本&#xff1a;5.0 &#xff1a; 一&#xff1a;过期监听&#xff1a; Spring Data Redis 封装了 Redis 的 Pub/Sub 功能&#xff0c;提供了对 key 过期事件的监听支持。 1. 核心类&#xff1a;KeyExpirationEventMessageListener 这个抽象类是 Spring 提供的&#x…

OA工程自动化办公系统 – 免费Java源码

概述 功能完备的OA工程自动化办公系统Java源码&#xff0c;采用主流技术栈开发&#xff0c;无论是学习SpringBoot框架还是开发企业级应用&#xff0c;都是不可多得的优质资源。 主要内容 技术架构 ​​后端技术栈​​&#xff1a; 核心框架&#xff1a;SpringBoot 2.xORM框…

嵌入式SDK技术EasyRTC音视频实时通话助力即时通信社交/教育等多场景创新应用

一、引言​ 在数字化时代&#xff0c;即时通信已成为人们生活和工作中不可或缺的部分。音视频功能作为即时通信的核心&#xff0c;能实现更加直观、高效的信息传递。EasyRTC作为一款强大的实时通信框架&#xff0c;具备诸多优势&#xff0c;为即时通信的音视频应用提供了优质解…

BEV和OCC学习-5:数据预处理流程

参考&#xff1a;自定义数据预处理流程 — MMDetection3D 1.4.0 文档 数据预处理流程的设计 预处理流程中的各项操作主要分为数据加载、预处理、格式化、测试时的数据增强。 接下来将展示一个用于 PointPillars 模型的数据集预处理流程的例子。 train_pipeline [dict(type…

OGG 23ai for DAA 部署与补丁升级

创建ogg 用户 /usr/sbin/groupadd -g 1002 dba /usr/sbin/groupadd -g 1001 oinstall /usr/sbin/groupadd -g 1003 oper useradd -u 1001 -g oinstall -G dba,oper oracle echo "oracle" |passwd oracle --stdin创建ogg安装目录 mkdir -p /u01/app/ogg/soft mkdir …

【LangchainAgent】Agent基本构建与使用

目录 一、功能简述 代码功能概括 &#x1f3af; 核心能力 二、运作流程 三、核心代码 四、运行结果 五、代码功能拆解 ✅ 1. 环境准备与依赖导入 ✅ 2. 加载网页文档并处理为向量 ✅ 3. 创建检索工具与搜索工具 ✅ 4. 初始化语言模型与 Agent ✅ 5. 封装支持多轮记…

【云安全】以Aliyun为例聊云厂商服务常见利用手段

目录 OSS-bucket_policy_readable OSS-object_public_access OSS-bucket_object_traversal OSS-Special Bucket Policy OSS-unrestricted_file_upload OSS-object_acl_writable ECS-SSRF 云攻防场景下对云厂商服务的利用大同小异&#xff0c;下面以阿里云为例 其他如腾…

完成一个可交互的k8s管理平台的页面开发

使用deepseek完成设计一个k8s管理平台&#xff0c;关键词如下&#xff1a; 完成一个可交互的k8s管理平台的页面开发Kubernetes 管理平台页面设计 下面是一个基于现代Web技术的可交互Kubernetes管理平台的页面设计方案&#xff0c;使用React作为前端框架&#xff0c;配合Ant De…

TDengine 支持的平台汇总

TDengine 服务端支持的平台列表 注&#xff1a;1) ● 表示经过官方测试验证&#xff0c; ○ 表示非官方测试验证&#xff0c;E 表示仅企业版支持。 2) 社区版仅支持主流操作系统的较新版本&#xff0c;包括 Ubuntu 18/CentOS 7/CentOS Stream/RedHat/Debian/CoreOS/FreeBSD/Op…

使用 HTML + JavaScript 实现文章逐句高亮朗读功能

在这个信息爆炸的时代&#xff0c;我们每天都要面对大量的文字阅读。无论是学习、工作还是个人成长&#xff0c;阅读都扮演着至关重要的角色。然而&#xff0c;在快节奏的生活中&#xff0c;我们往往难以找到足够的安静时间专注于阅读。本文用 HTML JavaScript 实现了一个基于…

理解非结构化文档:将 Reducto 解析与 Elasticsearch 结合使用

作者&#xff1a;来自 Elastic Adel Wu 演示如何将 Reducto 的文档处理与 Elasticsearch 集成以实现语义搜索。 Elasticsearch 与业界领先的生成式 AI 工具和提供商有原生集成。欢迎观看我们的网络研讨会&#xff0c;了解如何超越 RAG 基础&#xff0c;或使用 Elastic 向量数据…