安卓编程基础——网格布局

article/2025/9/20 21:23:25

目录

前言

一、新课讲解

(一)网格布局概述

1、布局特点

2、继承关系图

3、常用属性

(二)案例演示:计算器界面

1、创建安卓应用

                  2、准备背景图片

3、字符串资源文件

4、自定义边框配置文件

5、主布局资源文件

总结


前言

  • 有些应用要求控件很整齐地排成若干行和若干列,当然利用线性布局嵌套是可以实现的,但是太繁琐了,我们可以采用网格布局来实现,就比较简单。

一、新课讲解

(一)网格布局概述

1、布局特点

  • GridLayout布局使用虚细线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列。
  • 可以自己设置布局中组件的排列方式
  • 可以自定义网格布局有多少行、多少列
  • 可以直接设置组件位于某行某列
  • 可以设置组件横跨几行或者几列

2、继承关系图

  • GridLayout类是ViewGroup子类

 

3、常用属性

(1)针对布局的属性

属性含义
rowCount行数
columnCount列数
layout_width布局宽度
layout_height布局高度

(2)针对子控件的属性

属性含义
layout_row子控件在布局的行数
layout_column子控件在布局的列数
layout_rowSpan跨行数
layout_columnSpan跨列数

(二)案例演示:计算器界面

1、创建安卓应用

基于Empty Activity模板创建安卓应用 - GridLayoutCalculator


 

单击【Finish】按钮

2、准备背景图片

  • 将一张背景图片拷贝到drawable目录里

 

3、字符串资源文件

  • 字符串资源文件 - strings.xml
  • <resources><string name="app_name">网格布局:计算器界面</string>
    </resources>
    

    4、自定义边框配置文件

  • drawable目录里添加custom_border.xml并书写如下代码:
  • <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><corners android:radius="5dp" /><strokeandroid:width="1dp"android:color="#555555" /><paddingandroid:bottom="10dp"android:left="10dp"android:right="10dp"android:top="10dp" /><gradientandroid:endColor="#eeeeee"android:startColor="#aaaaaa" />
    </shape>
    

    5、主布局资源文件

  • 主布局资源文件 - activity_main.xml

  • 将默认的约束布局修改为垂直的线性布局,设置相关属性

  • 添加显示运算结果的标签,并设置相关属性

  •  查看预览效果

  • 添加一个网格布局,设置为6行5列

总结

有些应用要求控件很整齐地排成若干行和若干列,当然利用线性布局嵌套是可以实现的,但是太繁琐了,我们可以采用网格布局来实现,就比较简单。教会大家如何使用网格布局。


http://chatgpt.dhexx.cn/article/klguWLAk.shtml

相关文章

Android应用程序开发需要哪些编程语言?

开发一款Android上的应用程序通常需要以下编程语言&#xff1a; Java&#xff1a;Java是Android开发的主要编程语言。几乎所有的Android应用程序都使用Java进行核心开发。你可以使用Java编写应用程序的业务逻辑、界面设计和数据处理等。 刚好我这里有嵌入式、plc、单片机的资料…

安卓编程基础——触摸事件

文章目录 前言 一、安卓事件触摸概述 1、触摸分类 2、触摸动作 3、触摸监听器 4、触摸方法 5、触点个数与坐标 6、安卓触摸事件处理机制 二、使用步骤讲解 1.创建安卓应用 3、字符串资源文件 4、主布局资源文件 5、主界面类实现功能 6、启动应用&#xff0c;查看效果​编辑 总结…

在手机上如何用c语言编译器编程,如何用手机进行编程?

这里介绍3种可以在手机上编程的app&#xff0c;分别是c语言编译器(c语言)、AIDE集成开发环境(java)、QPython3(python)&#xff0c;都不需要root&#xff0c;可以直接编写程序并运行&#xff0c;下面我简单介绍一下这3个app的安装和简单使用&#xff0c;主要内容如下&#xff1…

Android 网络编程

【Android 网络编程】 HTTP HTTP简介 HTTP是一个属于应用层的面向对象的协议&#xff0c;由于其简捷、快速的方式&#xff0c;适用于分布式超媒体信息系统。它于1990年提出&#xff0c;经过几年的使用与发展&#xff0c;得到不断地完善和扩展。 HTTP协议的主要特点 支持C/…

安卓编程基础——手势编程

目录 前言 &#xff08;一&#xff09;安卓手势操作原理 &#xff08;二&#xff09;安卓手势类与接口 二、利用手势切换图片 1.创建安卓应用 3、字符串资源文件 4、主布局资源文件 5、主界面类实现功能 6、启动应用&#xff0c;查看效果 总结 前言 现代智能手机都支持…

安卓编程基础——列表

零、本讲学习目标 理解列表视图的四大组成元素 能使用基于数组适配器的列表视图 能使用基于简单适配器的列表视图 能使用基于基适配器的列表视图 一、导入新课 列表视图是基于适配器的供用户从多个选项中进行选择控件&#xff0c;可以通过滑动显示很多列表项。 二、新课讲解…

安卓编程基础——标签

目录 前言 &#xff08;一&#xff09;继承关系图 &#xff08;二&#xff09;标签常用属性 &#xff08;三&#xff09;教学案例&#xff1a;标签演示 1、创建安卓应用 2、字符串资源文件 3、自定义边框配置文件 4、主布局资源文件 5、主界面类实现功能 6、启动应用&a…

安卓编程基础——菜单

前言&#xff1a;学习目标 知道三种菜单使用场景能够正确使用三种菜单 一、新课讲解 菜单在安卓应用程序中占有比较重要的位置。原生安卓提供了三种类型的菜单&#xff1a;选项菜单&#xff08;OptionsMenu&#xff09;、上下文菜单&#xff08;ContextMenu&#xff09;和子菜…

安卓并发编程基础

1.线程 1.线程与进程的区别。 进程是程序运行和资源分配的基本单位&#xff0c;一个程序至少有一个进程&#xff0c;一个进程至少有一个线程。进程在执行过程中拥有独立的内存单元&#xff0c;而多个线程共享内存资源&#xff0c;减少切换次数&#xff0c;从而效率更高。线程是…

【安卓开发】安卓网络编程

目录 一、安卓Socket客户端二、安卓Socket客户端优化&#xff08;小车遥控器拓展&#xff09;三、Android非UI线程修改空间程序崩溃问题一种新的解决办法&#xff1a;Handler类&#xff08;倒计时软件&#xff09; 四、Android网络接收数据并刷新界面&#xff08;综合练习&…

storm-executor-spout(2)

2121SCSDUSC storm-executor-spout&#xff08;2&#xff09; 用一个spout读取Twitter数据。采用拓扑并行化&#xff0c;多个spout从同一个流读取数据的不同部分。如果有多个流要读取&#xff0c;可以在任意组件内&#xff08;spouts/bolts&#xff09;访问TopologyContext。…

php读取excel效率,PhpSpreadsheet VS Box\Spout读取excel性能对比

phpspreadsheet版本:1.5.0 spout版本:2.7.3 在同样的环境下,运行代码,spout的在内存使用和时间花费上都占优,在phpspreadsheet读取失败的文档spout依然能正确完成读取。 spout代码 ini_set(memory_limit, 2G); var_dump(memory_get_usage()); var_dump(microtime()); $loa…

KafkaSpout 浅析

最近在使用storm做一个实时计算的项目,Spout需要从 KAFKA 集群中读取数据&#xff0c;为了提高开发效率&#xff0c;直接使用了Storm提供的KAFKA插件。今天抽空看了一下KafkaSpout的源码&#xff0c;记录下心得体会。 KafkaSpout基于kafka.javaapi.consumer.SimpleConsumer实现…

storm trident的多数据流,多spout

storm trident的多数据流&#xff0c;多spout (STORM)[storm, kafka] storm可以使用接收多个spout作为数据源&#xff0c;core storm与trident均可以&#xff0c;本文主要介绍trident的用法。 在trident中设置多个spout的基本思路是先建立多个spout&#xff0c;然后分别创建…

storm学习笔记(二)——Storm组件详解之Tuple、Spout

目录 Tuple元组 结构 生命周期 Spout数据源 结构 开发spout组件 Storm的核心概念包括&#xff1a;Stream、Spout、Bolt、Tuple、Task、Worker、Stream Grouping、Topology Stream是被处理的数据&#xff0c;Spout是数据源&#xff0c;Bolt是处理数据的容器&#xff0c;T…

java 纳秒 格式化_Java日期时间API系列35-----Jdk8中java.time包中的新的日期时间API类应用,微秒和纳秒等更精确的时间格式化和解析。...

通过Java日期时间API系列1-----Jdk7及以前的日期时间类中得知,Java8以前除了java.sql.Timestamp扩充纳秒,其他类最大只精确到毫秒;Java8 time包所有相关类都支持纳秒。下面是示意图: 图中的nano 是 一秒钟包含的纳秒值,0到999999999。毫秒,微秒和纳秒都是通过这个值计算得…

c语言计时程序 纳秒,前端Tips#4 - 用 process.hrtime 获取纳秒级的计时精度

视频讲解 文字讲解 如果去测试代码运行的时长&#xff0c;你会选择哪个时间函数&#xff1f; 一般第一时间想到的函数是 Date.now 或 Date.getTime。 1、先讲结论 之所以这么选&#xff0c;是基于 精度 和 时钟同步 两方面考虑的。 2、知识讲解 首先看一下 Date.now 的缺点 返回…

纳秒时代

1978年在英特尔公司的历史中是很不平凡的一年。这一年它满10岁了&#xff0c;员工数首次超过1万人。这一年&#xff0c;它卖掉了竞争激烈的电子表&#xff08;digital watch&#xff09;业务。最重要的是&#xff0c;在这一年6月&#xff0c;它推出了具有跨时代意义的8086芯片。…

linux内核纳秒精度时间,Linux时钟精度:毫秒?微妙?纳秒?

最近被内核时钟精度弄的很是郁闷。具体情况如下&#xff1a; 扫盲&#xff1a;1秒1000毫秒1000000微妙1000000000纳秒 首先&#xff1a;linux有一个很重要的概念——节拍&#xff0c;它的单位是(次/秒)。2.6内核这个值是1000&#xff0c;系统中用一个HZ的宏表征这个值。同时有全…

java 日期 纳秒_java8 ZonedDateTime 日期精度到纳秒

1秒 10E3毫秒 10E6 微妙 10E9 纳秒 使用java8 Instant 内部实际System.currentTimeMillis() 在模型上 可输出纳秒数据 重点是模型 时间戳转日期 public static ZonedDateTime ofInstant(Instant instant, ZoneId zone) { Objects.requireNonNull(instant, "instant&qu…