Android应用界面
概述:由于学校原因,估计会考,曹某人就浅学一下。
目录
View概念
创建和使用布局文件
相对布局
线性布局
水平线性布局
垂直线性布局
表格布局
帧布局
扁平化布局
Android控件详解
AdapterView及其子类
View概念
安卓中的View是所有UI控件的基类,它代表着屏幕上的一个矩形区域,用于展示数据和接收用户事件。
- UI控件的基础:在Android开发中,View是构建用户界面的基本元素。无论是文本框(TextView)、按钮(Button)还是图片展示(ImageView),它们都是View的子类。
- 继承关系:所有的UI组件都从android.view.View类继承,这使得它们具有了显示视图的能力。ViewGroup也是View的一个子类,它代表了一组View的集合。
- 位置和大小:View的位置和大小由其四个顶点的坐标决定,这些坐标对应于View的top、left、right、bottom四个属性。
- 自定义View:开发者可以通过自定义View来创建独特的UI组件,以满足特定的设计需求。这包括创建不同形状、颜色和交互方式的视图。
- 事件传递:View不仅负责展示数据,还负责处理用户的交互事件,如点击、滑动等。
- 布局管理:ViewGroup是一种特殊的View,它可以包含其他View或ViewGroup,并负责其子元素的布局管理。常见的ViewGroup包括线性布局(LinearLayout)、相对布局(RelativeLayout)等。
- 可视化控件:在Android系统中,任何可视化控件都需要从android.view.View类继承。这意味着所有的UI组件,无论是标准的还是自定义的,都是View的实例或子类。
很抽象,接下来搞具体的
创建和使用布局文件
创建一个layout xml 文件

点击finish即可


这里先了解布局的概念
布局有七种形式,相对布局、线性布局、表格布局、网格布局、帧布局、绝对布局、扁平化布局
这下面这张图展示了常用的布局
扁平化布局、线性布局水平、线性布局垂直、栈布局、表格布局(估计教材也是老的,kotlin对我而言相当简单)记住常用也是最好用的就是扁平化布局,别听那些乱的

各布局的标签
RelativeLayout
LinearLayout
TableLayout
GridLayout
FrameLayout
AbsoluteLayout
ConstraintLayout
我就讲一下常用的
相对布局
将上面第一种拖拽过去,创建那个文件的时候默认是线性布局,点击Code来到代码地方

手动修改代码即可,一般就改个标签,我就不贴代码了

点击design,回到示图,加几个按钮看效果,同理还是拖拽方式

会发现重合在一起了,查看代码,点击code即可


这种的还要手动去搞相对位置,一般不用这个布局,之所以讲是因为书上写了。我提一下
线性布局
水平线性布局
拖拽按钮呈现

垂直线性布局
第一步:先将布局修改,回到代码地方,进行标签修改

拖拽按钮呈现

表格布局
第一步:先将布局修改,回到代码地方,进行标签修改

第二步:拖拽tablerow


帧布局
第一步:先将布局修改,回到代码地方,进行标签修改

第二步:拖拽button

扁平化布局
第一步:先将布局修改,回到代码地方,进行标签修改

第二步:拖拽button

Android控件详解
Android控件是构成用户界面的基本元素,它们可以响应用户的交互并显示相应的内容。以下是一些常用的Android控件及其详解:
- TextView:用于显示文本信息。它是最常用的控件之一,可以显示静态文本或者动态更新的文本内容。TextView支持多种文本样式和属性设置,如字体大小、颜色、对齐方式等。
- Button:按钮控件,用于触发点击事件。用户可以点击按钮来执行某个操作,如提交表单、打开新页面等。
- EditText:编辑框控件,允许用户输入和编辑文本信息。它通常用于表单中,用于收集用户输入的数据。
- CheckBox:复选框控件,允许用户从多个选项中选择一项或多项。它适用于需要用户做出多个选择的情况。
- RadioButton:单选按钮控件,通常与RadioGroup一起使用,允许用户在一组选项中选择一个。
- ProgressBar:进度条控件,用于显示操作的进度。它可以用来指示加载、下载或其他需要等待的操作进度。
- ImageView:用于显示图片的控件。它可以显示网络图片或本地资源图片,并支持图片的缩放和裁剪。
- ListView:列表视图控件,用于显示一个列表项集合。它非常适用于展示长列表数据,并且可以滚动查看。
- RecyclerView:一个更灵活的列表视图控件,用于替代传统的ListView和GridView。它提供了更好的性能和更丰富的布局管理能力。
- Fragment:片段控件,代表应用中的一个部分或一块功能模块,可以在活动中动态添加和替换。
- Dialog:对话框控件,用于在屏幕上显示一个临时的窗口,通常用于提示用户进行决策或显示额外信息。
- Spinner:下拉列表控件,允许用户从一个列表中选择一个选项。
- SeekBar:滑动条控件,允许用户通过滑动来选择一个范围内的值。
- Switch:开关控件,用于表示开/关状态的切换。
- TabLayout:标签布局控件,通常与ViewPager一起使用,用于实现可滑动的页面和顶部的标签导航。
- ViewPager:页面视图控件,允许用户在左右滑动时切换不同的页面。
- Toolbar:工具栏控件,用于提供应用的导航和操作按钮。
- FloatingActionButton:浮动操作按钮,通常用于表示应用的主要或核心操作。
- CardView:卡片视图控件,用于创建具有圆角和阴影效果的卡片式布局。
- ConstraintLayout:约束布局控件,允许开发者通过创建视图之间的约束来构建复杂的布局。
AdapterView及其子类
AdapterView是Android中用于显示列表数据的抽象基类,其子类包括ListView、GridView和Spinner等。
我举个例子
第一步:编写示图代码

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><ListViewandroid:id="@+id/listview1"android:layout_width="match_parent"android:layout_height="wrap_content"android:divider="#C4C4V4"android:entries="@array/teacher_name"android:dividerHeight="1dp"></ListView>
</LinearLayout>
第二步:在values下创建并编写arrays.xml文件

arrays.xml代码
<?xml version="1.0" encoding="utf-8"?>
<resources><string-array name="teacher_name"><item>zhangsan</item><item>wangwu</item><item>lisi</item><item>zhaoliu</item></string-array></resources>
在改一下主类即可

AdapterView及其子类在Android开发中扮演着至关重要的角色,它们主要用于展示集合数据。以下是对这些组件的详细介绍:
- AdapterView:作为一个抽象基类,它本身不可直接实例化。它继承自ViewGroup,本质上是一个容器,可以包含多个列表项。这些列表项是由一个称为Adapter的数据适配器提供,通过调用setAdapter()方法来设置。
- ListView:是AdapterView的一个具体实现,以垂直滚动列表的形式展示数据。每个列表项通常是一个简单的布局,如TextView或ImageView。ListView通过使用Adapter来桥接数据源和视图,使得数据可以在屏幕上动态显示。
- GridView:同样继承自AdapterView,但是它是以网格形式展示数据。与ListView不同的是,GridView将数据项按照二维网格排列,适合展示图片等需要网格布局的数据。
- Spinner:也是AdapterView的一个子类,它提供了一个下拉列表,用户可以从中选择一个选项。Spinner通常用于实现单项选择的功能,例如选择国家、语言等。
- 其他子类:除了上述三个常用的子类外,还有一些其他的子类,如AdsListView、AdsSpinner、AdapterViewAnimator等,但它们在实际开发中使用较少。
在实际应用中,开发者需要根据具体的应用场景选择合适的AdapterView子类来实现数据展示的功能。例如,如果想要展示一个图片库,可能会选择GridView;如果是显示一系列的文本或者混合内容,则可能会选择ListView。而Spinner则适用于需要用户从一组选项中做出选择的情况。
相关文章:
Android应用界面
概述:由于学校原因,估计会考,曹某人就浅学一下。 目录 View概念 创建和使用布局文件 相对布局 线性布局 水平线性布局 垂直线性布局 表格布局 帧布局 扁平化布局 Android控件详解 AdapterView及其子类 View概念 安卓中的View是所…...
生活的色彩--爱摸鱼的美工(17)
题记 生活不如意事十之八九, 恶人成佛只需放下屠刀,善人想要成佛却要经理九九八十一难。而且历经磨难成佛的几率也很小,因为名额有限。 天地不仁以万物为刍狗! 小美工记录生活,记录绘画演变过程的一天。 厨房 食…...
【YOLO v5 v7 v8 v9小目标改进】AFPN 渐进式特征金字塔网络:解决多尺度特征融合中,信息在传递过程丢失
AFPN 渐进式特征金字塔网络:解决多尺度特征融合中,信息在传递过程丢失 提出背景AFPN 多尺度特征金字塔 非邻近层次的直接特征融合 自适应空间融合操作 小目标涨点YOLO v5 魔改YOLO v7 魔改YOLO v8 魔改YOLO v9 魔改 提出背景 论文:https:…...
问题解决 | vscode无法连接服务器而ssh和sftp可以
解决步骤 进入家目录删除.vscode-server rm -rf .vscode-server 然后再次用vscode连接服务器时,会重新安装,这时可能报出一些缺少依赖的错 需要联系管理员安装相关依赖,比如 sudo apt-get install libstdc6 至此问题解决...
Git 远程操作
1.分布式版本控制系统 我们目前所说的所有内容(工作区,暂存区,版本库等等),都是在本地!也就是在你的笔记本或者计算机上。而我们的 Git 其实是分布式版本控制系统!什么意思呢 可以简单理解为&am…...
Windows C++ 实现远程虚拟打印机(远程共享打印机)
编译错误已经修改完后的工程修改后的下载地址 https://download.csdn.net/download/2403_83063732/88928550 1、下载clawpdf(0.8.7版本) https://github.com/clawsoftware/clawPDF 2、打开clawpdf工程开始编译C#工程,出现如下错误…...
【jvm】java对象占用内存问题深入解析
一个Java对象占用多大内存-CSDN博客 关于Object o new Object()追魂九连问(个人学习笔记) - 知乎JVM(Java虚拟机)-史上最全、最详细JVM笔记-CSDN博客...
金现代产品方案部部长王宁,将出席“ISIG-低代码/零代码技术与应用发展峰会”
3月16日,第四届「ISIG中国产业智能大会」将在上海中庚聚龙酒店拉开序幕。本届大会由苏州市金融科技协会指导,企智未来科技(LowCode低码时代、RPA中国、AIGC开放社区)主办。大会旨在聚合每一位产业成员的力量,深入探索低…...
数据结构——lesson7二叉树 堆的介绍与实现
前言💞💞 啦啦啦~这里是土土数据结构学习笔记🥳🥳 💥个人主页:大耳朵土土垚的博客 💥 所属专栏:数据结构学习笔记 💥对于数据结构顺序表链表有疑问的都可以在上面数据结…...
阿里云DSW做AI绘画时的显卡选择A10?V100?
V100是Volta架构,A10是Ampere架构,架构上讲A10先进点,其实只是制程区别,用起来没区别。 V100是HBM的内存读取,带宽大,但是DDR5的。 二块卡都是全精度为主的算力卡,半精度优势不明显。 需要用…...
MySQL安装使用(mac)
目录 一、下载MySQL 二、环境变量 三、启动 MySql 四、初始化密码设置 一、下载MySQL 打开 MySql 官方下载页面 我是macOS12,所以选择了8.0.30 下载完成之后,打开安装,一直下一步安装完成,在最后安装完成时,会弹出…...
Qt控制台项目也能使用opencv的imshow来显示摄像头视频
创建一个Qt控制台项目,目的是实现在控制台打开摄像头视频。由于windows平台是支持GUI(图形用户界面)功能,所以在windows环境下是可以打开的,但是linux环境下,由于不支持GUI功能,而是支持wayland,…...
前端缓存使用规范
一、Cookie使用规范 cookie的存储空间非常有限且会携带在请求头中会浪费不必要的流量,如果仅仅是为存储数据,可以采用其他替代方案,例如 webStorage,非必要不使用cookie。 1、使用方法 注意:过期时间时需转换成UTC格…...
Linux rmmod命令教程:如何卸载内核模块(附实例详解和注意事项)
Linux rmmod命令介绍 rmmod(全称:remove module)用于从Linux内核中卸载已加载的内核模块。它允许您在运行时移除不再需要的模块,以释放系统资源或更改内核配置。 Linux rmmod命令适用的Linux版本 rmmod在大多数Linux发行版中通…...
中国气象要素年度空间插值数据集
摘要 中国气象要素年度空间插值数据集是地理遥感生态网平台基于全国2400多个站点的气象要素站点日观测数据,在计算各气象要素年值的基础上,基于Anuspl插值软件生成1960-2021年各年度蒸发量、地温、降水量、气压、相对湿度、日照时数 、气温、风速8个气象…...
链表习题-力扣oj (附加思路版)
LCR 140. 训练计划 IIhttps://leetcode.cn/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/ 给定一个头节点为 head 的链表用于记录一系列核心肌群训练项目编号,请查找并返回倒数第 cnt 个训练项目编号。 思路:双指针,快指针先走cnt…...
HNU-计算机网络-甘晴void学习感悟
前言 计算机网络其实我没太学懂, 仅从应试来说,考试成绩也不太好。 这也是为什么一直没有更新这一学科的学习感悟。 大三下还是有点闲,一周三天小长假,闲来无事还是给写了。 教材使用这本: 总领 期中考试 30% 期…...
混合输入矩阵乘法的性能优化
作者 | Manish Gupta OneFlow编译 翻译|宛子琳、杨婷 AI驱动的技术正逐渐融入人们日常生活的各个角落,有望提高人们获取知识的能力,并提升整体生产效率。语言大模型(LLM)正是这些应用的核心。LLM对内存的需求很高&…...
安卓Kotlin面试题 41-50
41、如何在 Kotlin 中实现 Builder 模式?首先,在大多数情况下,您不需要在 Kotlin 中使用构建器,因为我们有默认和命名参数,但如果您需要使用://add private constructor if necessary class Car( val model: String?,val year: Int) { private constructor(build…...
portainer管理远程docker和docker-swarm集群
使用前请先安装docker和docker-compose,同时完成docker-swarm集群初始化 一、portainer-ce部署 部署portainer-ce实时管理本机docker,使用docker-compose一键拉起 docker-compose.yml version: 3 services:portainer:container_name: portainer#imag…...
你以为开题报告是在写作文?好写作AI告诉你,它其实是一次“决策”
在我教的论文写作科普课里,有一个场景反复上演。 一位研一的学生,抱着一沓打印出来的文献,站在讲台前,一脸认真地对我说:“老师,我的开题报告文献综述写了6000字,但导师说我是‘文献汇编’&…...
编写程序搭建社保医保代扣对账校验工具,核对智能代扣流水与缴费标准,自动筛查扣费误差漏扣错扣异常账单。
面向高校财务、HR、会计实训场景,用于批量核对代扣流水 vs 缴费标准,自动发现漏扣、错扣、金额异常。 一、实际应用场景描述 典型场景(高校 / 中小企业): - 某高校人事处每月为教职工代扣: - 养老保险 - 医…...
涨薪技术|Prometheus监控之核心组件简介
各位伙伴,大家好! Prometheus监控对于开发运维工程师来说并不陌生,但是对于测试工程师来说可能还是比较陌生吧!最近也很多小伙伴私信我问prometheus相关问题,所以接下来我会通过连载的方式分享一些关于prometheus如何使用的实践教程。 今天分享:Prometheus的六大核心组件…...
用EasyX图形库给你的C语言课设加满分:从贪吃蛇到飞机大战的实战思路
用EasyX图形库为C语言课设注入视觉活力:从数据可视化到小游戏开发 每到期末,计算机专业的同学们总会面临一个共同的挑战:如何让C语言课设脱颖而出?当大多数同学还在使用控制台菜单交互时,掌握EasyX图形库就能让你的项目…...
基于STM32LXXX的无线收发芯片(SX1281IMLTRT)应用程序设计
一、简介: SX1280/1收发器系列在2.4GHz频段提供超长距离通信能力,其线性度足以抵御强干扰环境,堪称构建稳健可靠无线解决方案的理想选择。作为首款集成飞行时间功能的ISM频段收发器芯片,该产品为物流链中资产追踪定位及人员安全监测开辟了应用新场景。这些长距离2.4GHz产品…...
从AXI握手到数据流:5分钟搞懂ZYNQ Ultrascale+里PS和PL是怎么‘聊天’的
从AXI握手到数据流:5分钟搞懂ZYNQ Ultrascale里PS和PL是怎么‘聊天’的 想象一下,你正在设计一个智能摄像头系统,需要实时处理4K视频流。ARM处理器负责运行复杂的图像识别算法,而FPGA则承担高速像素处理的重任。两者如何高效协作&…...
Windows Server 2019上部署RustDesk自建服务器,我踩过的那些坑(Node.js、PM2、防火墙配置全记录)
Windows Server 2019实战:RustDesk自建服务器的避坑指南 当远程办公成为新常态,自建远程桌面解决方案的需求与日俱增。RustDesk作为一款开源的远程控制工具,凭借其轻量级和高度可定制化的特点,正吸引着越来越多的技术爱好者和企业…...
SecretFinder项目贡献指南:如何参与开源社区开发
SecretFinder项目贡献指南:如何参与开源社区开发 【免费下载链接】SecretFinder SecretFinder - A python script for find sensitive data (apikeys, accesstoken,jwt,..) and search anything on javascript files 项目地址: https://gitcode.com/gh_mirrors/s…...
geography (Google Earth)
google 三维立体地图 geography (Google Earth) 地理学习...
React 乐观更新(Optimistic UI):在网络波动环境下维持 React 状态与服务端最终一致性
欢迎来到“乐观 UI”的游乐场:如何在网络波动中假装一切都很完美大家好,我是你们的老朋友,一个在 React 深渊里摸爬滚打多年的资深工程师。今天我们不聊那些虚头巴脑的架构图,也不谈什么微前端、Serverless,咱们来聊点…...
