Android应用界面

概述:由于学校原因,估计会考,曹某人就浅学一下。

View概念

安卓中的View是所有UI控件的基类,它代表着屏幕上的一个矩形区域,用于展示数据和接收用户事件。

  1. UI控件的基础:在Android开发中,View是构建用户界面的基本元素。无论是文本框(TextView)、按钮(Button)还是图片展示(ImageView),它们都是View的子类。
  2. 继承关系:所有的UI组件都从android.view.View类继承,这使得它们具有了显示视图的能力。ViewGroup也是View的一个子类,它代表了一组View的集合。
  3. 位置和大小:View的位置和大小由其四个顶点的坐标决定,这些坐标对应于View的top、left、right、bottom四个属性。
  4. 自定义View:开发者可以通过自定义View来创建独特的UI组件,以满足特定的设计需求。这包括创建不同形状、颜色和交互方式的视图。
  5. 事件传递:View不仅负责展示数据,还负责处理用户的交互事件,如点击、滑动等。
  6. 布局管理:ViewGroup是一种特殊的View,它可以包含其他View或ViewGroup,并负责其子元素的布局管理。常见的ViewGroup包括线性布局(LinearLayout)、相对布局(RelativeLayout)等。
  7. 可视化控件:在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控件及其详解:

  1. TextView:用于显示文本信息。它是最常用的控件之一,可以显示静态文本或者动态更新的文本内容。TextView支持多种文本样式和属性设置,如字体大小、颜色、对齐方式等。
  2. Button:按钮控件,用于触发点击事件。用户可以点击按钮来执行某个操作,如提交表单、打开新页面等。
  3. EditText:编辑框控件,允许用户输入和编辑文本信息。它通常用于表单中,用于收集用户输入的数据。
  4. CheckBox:复选框控件,允许用户从多个选项中选择一项或多项。它适用于需要用户做出多个选择的情况。
  5. RadioButton:单选按钮控件,通常与RadioGroup一起使用,允许用户在一组选项中选择一个。
  6. ProgressBar:进度条控件,用于显示操作的进度。它可以用来指示加载、下载或其他需要等待的操作进度。
  7. ImageView:用于显示图片的控件。它可以显示网络图片或本地资源图片,并支持图片的缩放和裁剪。
  8. ListView:列表视图控件,用于显示一个列表项集合。它非常适用于展示长列表数据,并且可以滚动查看。
  9. RecyclerView:一个更灵活的列表视图控件,用于替代传统的ListView和GridView。它提供了更好的性能和更丰富的布局管理能力。
  10. Fragment:片段控件,代表应用中的一个部分或一块功能模块,可以在活动中动态添加和替换。
  11. Dialog:对话框控件,用于在屏幕上显示一个临时的窗口,通常用于提示用户进行决策或显示额外信息。
  12. Spinner:下拉列表控件,允许用户从一个列表中选择一个选项。
  13. SeekBar:滑动条控件,允许用户通过滑动来选择一个范围内的值。
  14. Switch:开关控件,用于表示开/关状态的切换。
  15. TabLayout:标签布局控件,通常与ViewPager一起使用,用于实现可滑动的页面和顶部的标签导航。
  16. ViewPager:页面视图控件,允许用户在左右滑动时切换不同的页面。
  17. Toolbar:工具栏控件,用于提供应用的导航和操作按钮。
  18. FloatingActionButton:浮动操作按钮,通常用于表示应用的主要或核心操作。
  19. CardView:卡片视图控件,用于创建具有圆角和阴影效果的卡片式布局。
  20. 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">
    <ListView
        android: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则适用于需要用户从一组选项中做出选择的情况。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud 微服务架构编码构建

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第一篇&#xff0c;即不使用 SpringCloud 组件进行模块之间的调用&#xff0c;后续会有很多的文章循序渐…

12.WEB渗透测试-Linux系统管理、安全加固(下)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;11.WEB渗透测试-Linux系统管理、安全加固&#xff08;上&#xff09;-CSDN博客 Linux任务…

(二十二)从零开始搭建k8s集群——高可用kubernates集群搭建上篇

前言 本节内容分为上、中、下三篇&#xff0c;上篇主要是关于搭建k8s的基础环境&#xff0c;包括服务器基本环境的配置&#xff08;网络、端口、主机名、防火墙、交换分区、文件句柄数等&#xff09;、docker环境部署安装配置、镜像源配置等。中篇会介绍k8s的核心组件安装、k8…

STM32 学习10 PWM输出

STM32 学习10 PWM输出 一、PWM简介1. PWM的概念2. PWM的工作原理3. PWM 常用的应用场景 二、一些概念1. 频率2. 占空比 三、STM32F1 PWM介绍1. 定时器与寄存器&#xff08;1&#xff09;**自动重装载寄存器&#xff08;ARR&#xff09;**&#xff1a;&#xff08;2&#xff09;…

商业前端TS开发自动化工具

本期作者 一、背景 商业侧的业务比较复杂&#xff0c;B端项目中含有大量常量类的类型判断&#xff0c;且因历史原因&#xff0c;很多常量值前端无法直接知其含义&#xff0c;这既不利于新人的上手&#xff0c;也不利于项目的维护。 在开发协作上&#xff0c;前后端的API沟通&a…

面向对象中类与对象

思考系统1000个对象逻辑结构 理解系统1000个对象物理结构 对象this 引用 类的静态变量和静态函数 静态变量和静态函数属于类本身&#xff0c;而不是类的实例。它们可以在不创建类的实例的情况下直接通过类名访问。静态变量在内存中只有一份拷贝&#xff0c;被所有实例共享&…

人工智能(AI)与电网系统的结合

人工智能&#xff08;AI&#xff09;与电网系统的结合可以带来许多潜在的好处&#xff0c;包括提高电网的运行效率、安全性和可靠性。以下是一些主要的应用领域&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交…

基于SSM的环境监测管理系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 主要技术和工具介绍 3 1.1 SSM框架简介 3 1.1.1 Spring 3 1.1.2 Mybatis 数据持久化技术 3 1.1.3 SpringMVC 3 1.2 MySQL数据简介 4 1.3 本章小结 4 2 系统分析 5 2.1 需求分析 5 2.1.1 功能分析 5 2.1.2 用例说明 6 2.2 可行性分析 9 2.…

深度学习与机器学习:互补共进,共绘人工智能宏伟蓝图

在人工智能的广阔天地中&#xff0c;深度学习与机器学习如同两支强大的队伍&#xff0c;各自闪耀着独特的光芒&#xff0c;却又携手共进&#xff0c;共同书写着智能的辉煌篇章。尽管深度学习是机器学习的一个分支&#xff0c;但它们在模型构建、特征提取以及应用场景等多个方面…

Linux基础IO【 详 解 】

文章目录 C语言文件IOC语言文件接口汇总默认打开的三个流 系统文件IOopenclosewriteread 文件描述符fd文件描述符的分配规则重定向重定向的本质dup2 FILEFILE当中的文件描述符FILE当中的缓冲区 理解文件系统初识inode磁盘分区与格式化介绍 软硬链接软链接硬链接软硬链接的区别 …

【动态规划】二维费用的背包问题

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;题目解析 &#x1f30e;推荐文章&#xff1a;【LeetCode】winter vacation training 目录 &#x1f449;&#x1f3fb;一和零 &#x1f449;&#x1f3fb;一…

外汇天眼科普:什么是场内交易和场外交易?

场内交易 又称交易所交易&#xff0c;指所有的供求方集中在交易所进行竞价交易的交易方式。 这种交易方式具有交易所向交易参与者收取保证金、同时负责进行清算和承担履约担保责任的特点。 此外&#xff0c;由于每个人都有不同的需求&#xff0c;交易所事先设计出标准化的金融…

C++ Qt开发:QFileSystemModel文件管理组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍如何运用QFileSystemModel组件实现文件管理器…

Redis冲冲冲——Redis分布式锁如何实现

目录 引出Redis分布式锁如何实现Redis入门1.Redis是什么&#xff1f;2.Redis里面存Java对象 Redis进阶1.雪崩/ 击穿 / 穿透2.Redis高可用-主从哨兵3.持久化RDB和AOF4.Redis未授权访问漏洞5.Redis里面安装BloomFilte Redis的应用1.验证码2.Redis高并发抢购3.缓存预热用户注册验证…

广播

1.什么是广播 2.标准广播 BroadStandardActivity.java package com.tiger.chapter09;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; import android.view.View;…

OPC UA 学习:文件传输

本博文是OPC 10000-20: UA Part 20: File Transfer 的学习笔记。 客户端需要读写服务器端的文件&#xff0c;OPCUA 规范中&#xff0c;是通过文件模型实现的。客户端通过调用文件模型中的方法来处理文件。 文件类型 文件类型&#xff08;FileType&#xff09;的属性 属性 文…

什么是工业物联网关?工业物联网关有什么作用?

在数字化和智能化浪潮席卷全球的今天&#xff0c;工业物联网&#xff08;IIoT&#xff09;成为了推动工业4.0革命的核心力量。而在这场革命中&#xff0c;工业物联网关发挥着至关重要的作用。那么&#xff0c;什么是工业物联网关&#xff1f;它又有哪些功能呢&#xff1f;今天&…

教育照明灯具十大排名榜有哪些?护眼台灯选购看这一篇就够了!

现在关于孩子的教育问题&#xff0c;父母还是十分重视的&#xff0c;当然除了让孩子接受良好的教育&#xff0c;给孩子营造良好的学习空间也成为了很多父母心中重要的事情&#xff0c;其中关于光线的问题不少&#xff0c;不良光线是很多孩子近视的导火索&#xff0c;而护眼台灯…

6、string字符串拼接

#include <iostream> using namespace std;void test01 () {string s1 "我";s1 "爱玩游戏";cout << s1 << endl;s1 :;string s2 "lol dnf";s1 s2;cout << s1 << endl;string s3 "i";s3.append(&q…

Docker容器的操作

目录 运行容器 查看容器 查看容器详细信息 删除容器 启动容器 停止容器 重启容器 暂停容器 激活容器 杀死容器 进入容器 常用 查看容器的日志 拷贝容器的文件到本地 容器改名 查看容器资源 查看容器内部的进程 监测容器发生的事件 检测容器停止以后的反回值…