文章目录

  • 零、学习目标
  • 一、网格布局概述
    • 1、布局特点
    • 2、继承关系图
    • 3、常用属性
      • (1)针对布局的属性
      • (2)针对子控件的属性
  • 二、案例演示——计算器界面
    • (一)运行效果
    • (二)涉及知识点
    • (三)实现步骤
      • 1、创建安卓应用【GridLayoutCalculator】
      • 2、将一张背景图片拷贝到drawable目录里
      • 3、主布局资源文件activity_main.xml
      • 4、在drawable目录里添加custom_border.xml
      • 5、启动应用,查看效果
  • 三、课后作业
    • 1、网格布局练习1
    • 2、网格布局练习2

零、学习目标

  1. 能说出网格布局常用的属性
  2. 能利用网格布局实现简单的界面设计

一、网格布局概述

1、布局特点

GridLayout布局使用虚细线将布局划分为行、列和单元格,也支持一个控件在行、列上都有交错排列。

2、继承关系图

3、常用属性

(1)针对布局的属性

  • rowCount:行数
  • columnCount:列数

(2)针对子控件的属性

  • layout_row:子控件在布局的行数
  • layout_column:子控件在布局的列数
  • layout_rowSpan:跨行数
  • layout_columnSpan:跨列数

二、案例演示——计算器界面

(一)运行效果

(二)涉及知识点

1、网格布局(GridLayout)
2、线性布局(LinearLayout)
3、文本视图(TextView)
4、按钮(Button)

(三)实现步骤

1、创建安卓应用【GridLayoutCalculator】


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

3、主布局资源文件activity_main.xml

<?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"android:background="@drawable/background"android:orientation="vertical"android:padding="15dp"android:gravity="center_horizontal"tools:context="net.hw.calculator.MainActivity"><GridLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:columnCount="5"android:rowCount="7"><TextViewandroid:layout_width="320dp"android:layout_height="50dp"android:layout_row="0"android:layout_column="0"android:layout_columnSpan="5"android:gravity="right"android:background="@drawable/custom_border"android:paddingRight="10dp"android:text="0123456789"android:textColor="#0000ff"android:textSize="25sp"android:layout_marginBottom="30dp"/><Buttonandroid:layout_width="65dp"android:layout_row="1"android:layout_column="0"android:text="MC" /><Buttonandroid:layout_width="65dp"android:layout_row="1"android:layout_column="1"android:text="MR" /><Buttonandroid:layout_width="65dp"android:layout_row="1"android:layout_column="2"android:text="MS" /><Buttonandroid:layout_width="65dp"android:layout_row="1"android:layout_column="3"android:text="M+" /><Buttonandroid:layout_width="65dp"android:layout_row="1"android:layout_column="4"android:text="M-" /><Buttonandroid:layout_width="65dp"android:layout_row="2"android:layout_column="0"android:text="←" /><Buttonandroid:layout_width="65dp"android:layout_row="2"android:layout_column="1"android:text="CE" /><Buttonandroid:layout_width="65dp"android:layout_row="2"android:layout_column="2"android:text="C" /><Buttonandroid:layout_width="65dp"android:layout_row="2"android:layout_column="3"android:text="±" /><Buttonandroid:layout_width="65dp"android:layout_row="2"android:layout_column="4"android:text="√" /><Buttonandroid:layout_width="65dp"android:layout_row="3"android:layout_column="0"android:text="7" /><Buttonandroid:layout_width="65dp"android:layout_row="3"android:layout_column="1"android:text="8" /><Buttonandroid:layout_width="65dp"android:layout_row="3"android:layout_column="2"android:text="9" /><Buttonandroid:layout_width="65dp"android:layout_row="3"android:layout_column="3"android:text="/" /><Buttonandroid:layout_width="65dp"android:layout_row="3"android:layout_column="4"android:text="%" /><Buttonandroid:layout_width="65dp"android:layout_row="4"android:layout_column="0"android:text="4" /><Buttonandroid:layout_width="65dp"android:layout_row="4"android:layout_column="1"android:text="5" /><Buttonandroid:layout_width="65dp"android:layout_row="4"android:layout_column="2"android:text="6" /><Buttonandroid:layout_width="65dp"android:layout_row="4"android:layout_column="3"android:text="*" /><Buttonandroid:layout_width="65dp"android:layout_row="4"android:layout_column="4"android:text="1/x" /><Buttonandroid:layout_width="65dp"android:layout_row="5"android:layout_column="0"android:text="1" /><Buttonandroid:layout_width="65dp"android:layout_row="5"android:layout_column="1"android:text="2" /><Buttonandroid:layout_width="65dp"android:layout_row="5"android:layout_column="2"android:text="3" /><Buttonandroid:layout_width="65dp"android:layout_row="5"android:layout_column="3"android:text="-" /><Buttonandroid:layout_width="65dp"android:layout_height="95dp"android:layout_row="5"android:layout_rowSpan="2"android:layout_column="4"android:text="=" /><Buttonandroid:layout_width="130dp"android:layout_row="6"android:layout_column="0"android:layout_columnSpan="2"android:text="0" /><Buttonandroid:layout_width="65dp"android:layout_row="6"android:layout_column="2"android:text="." /><Buttonandroid:layout_width="65dp"android:layout_row="6"android:layout_column="3"android:text="+" /></GridLayout>
</LinearLayout>

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" /><solid android:color="#eeeeee" /><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、启动应用,查看效果

三、课后作业

1、网格布局练习1

2、网格布局练习2

  • 图片配文字

安卓学习笔记11:常用布局 - 网格布局相关推荐

  1. android学习笔记---android常用的软件布局方式,使用方法总结

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.Android的五大布局分别是LinearLay ...

  2. 2020年安卓学习笔记目录

    文章目录 一.讲课笔记 二.安卓案例 三.安卓实训项目 四.学生安卓学习博客 五.安卓课后作业 (一)界面设计练习 1.制作登录界面 2.制作部队管理界面 3.制作灭火救援界面 4.制作交付界面 5. ...

  3. AD学习笔记(四)PCB布局分析

    文章目录 AD学习笔记 第四讲 PCB布局分析 一.PCB导入以及常见报错解决方法 二.常见绿色报错的消除 三.PCB板框的评估及叠层设计 四.快捷键设置及推荐 五.PCB布局注意事项 AD学习笔记 ...

  4. Android学习笔记---09_深入了解各种布局技术

    Android学习笔记---09_深入了解各种布局技术 09_深入了解各种布局技术

  5. 「学习笔记」黑马面面布局开发

    「学习笔记」黑马面面布局开发 黑马面面布局开发 一.目的 1.1 技术方案 1.2 代码规范 1.2 目录规范 二.流程开发 2.1 蓝湖/摹客协作平台 2.2 适配方案 2.3 初始化文件 2.4 ...

  6. 前端学习笔记36-水平方向的布局

    前端学习笔记36-水平方向的布局 上一节中的margin-right是没用的,为什么呢? 子元素的七个水平布局设置: margin-left border-left padding-left widt ...

  7. 安卓学习笔记07:事件处理、窗口跳转与传递数据

    文章目录 零.学习目标 一.三个基本控件 1.标签控件(TextView) 2.编辑框控件(EditText) 3.按钮控件(Button) 二.安卓事件处理机制 (一)安卓事件处理概述 (二)安卓事 ...

  8. Python学习笔记:常用第三方模块3

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

  9. 很low的安卓学习笔记(一、实用技巧)

    很low的安卓学习笔记(一.实用技巧) 一.学习了几天的实用技巧小总结: 1.规范的定义内容的格式: 2.一些快捷键 3.将xxx.xml布局改为Activity中可以调用的View视图 4.当左下角 ...

最新文章

  1. 解决RuntimeError: cuda runtime error (30) : unknown error at /pytorch/aten/src/THC/THCGeneral.cpp:70N
  2. 学python有必要买书吗-终于明白python需要学什么
  3. ProjectEuler 005题
  4. 如何将已有mdf文件导入到SQL 2000 或者 SQL 2005
  5. python实现邮件客户端_利用python实现简单的邮件发送客户端示例
  6. mysql设置输出格式_rsyslog 配置mysql输出格式
  7. 如何查看服务器gpu性能,ubuntu服务器查看GPU和CPU实时使用情况
  8. clion变量配置_cygwin安装和clion配置
  9. jmeter元件的作用域与执行顺序
  10. Linux Tomcat9 控制界面及管理配置
  11. 网络安全:漏洞测试主要平台 BackTrack4+Metasploit+ruby
  12. 谈谈滞后补偿器与PI控制及其原理分析
  13. android 点击事件失效,安卓手机微信自带浏览器点击事件失效解决
  14. 保护域及安全域的概念:受保护的资源所在的区域
  15. 什么是App推广技术?
  16. 二进制十进制十六进制转换_二进制数制到十进制数制的转换
  17. 拉升股价套利为饵狂骗157万 广州邦臣机械气化炉警方:防理财诈骗
  18. win10主题更换_【小A问答】遇到超好看的Win10主题壁纸如何提取?
  19. 机器学习算法平台alink_阿里正式开源通用算法平台Alink,“双11”将天猫推荐点击率提升4...
  20. STM32——GPIO的CRL、CRH和CNF与MODE的关系

热门文章

  1. 【华为云技术分享】解密如何使用昇腾AI计算解决方案构建业务引擎
  2. 【华为云技术分享】Linux内核补丁源码分析(1)
  3. 【华为云技术分享】区块链与数据库如何结合?
  4. 大前端的自动化工厂(5)—— 基于Karma+Mocha+Chai的单元测试和接口测试
  5. python separator_在Python中使用分隔符变量拆分字符串
  6. 红橙Darren视频笔记 流式布局tagLayout measure layout方法学习 adapter使用 学习感悟
  7. idea 关于2020maven home directory的路径
  8. Windows下jupyter notebook 修改打开的浏览器为chrome
  9. centos7.0查看IP
  10. java利用递归解决汉诺塔问题