文章目录

  • 零、学习目标
  • 一、导入新课
  • 二、新课讲解
    • (一)相对布局概述
      • 1、布局特点
      • 2、继承关系图
      • 3、常用属性
        • (1)相对于父容器居中
        • (2)相对于父容器对齐
        • (3)相对于其它控件位置
        • (4)相对于其它控件对齐
        • (5)标识符问题
    • (二)案例演示:相对布局演示
      • 1、创建安卓应用
      • 2、准备图片素材
      • 3、字符串资源文件
      • 4、主布局资源文件
      • 5、启动应用,查看效果
  • 三、归纳总结
  • 四、上机操作

零、学习目标

  1. 了解相对布局优点
  2. 熟悉相对布局常用属性
  3. 掌握线性布局嵌套相对布局

一、导入新课

  • 如果需要在多个方向上进行布局,就要嵌套多个线性布局。如果UI足够复杂,那么从工作量和性能上都将是一场噩梦。因此引出另一种布局方式——相对布局,很多时候需要嵌套多个线性布局才能实现的布局,使用相对布局,一层就能够完成。相对布局十分灵活,可以实现复杂界面的设计,当然掌握起来比较难。

二、新课讲解

(一)相对布局概述

  • 顾名思义,相对布局就是让内部的 View 根据其他 View 或者 Parent 的位置来确定自己的摆放位置和尺寸。比如你买了套沙发,你告诉师傅把沙发放到客厅内,面对电视机并且和茶几平行,靠墙摆放。其中沙发就是我们的目标 View,客厅就是 Parent,电视机和茶几就是其他的 View。这样一来,就能够准确的确定出你希望摆放的位置。RelativeLayout 的原理就是这样,我们可以指定某个 View 相对于它的兄弟 View 而言的摆放位置(比如在 TextView 的左边 10 dp或者在上面 25 dp),另外也可以指定它在父布局(RelativeLayout)中的摆放位置。RelativeLayout 应该说是在 Android GUI 设计中最常用的布局方式。

1、布局特点

  • 在相对布局中,一个控件的位置取决于它和其它控件的相对关系
  • 优点:使用比较灵活
  • 缺点:复杂,掌握较难

2、继承关系图

  • RelativeLayout类是ViewGroup的子类

3、常用属性

(1)相对于父容器居中

属性 含义
layout_centerInParent 在父容器居中
layout_centerHorizontal 在父容器水平居中(true | false)
layout_centerVertical 在父容器垂直居中

(2)相对于父容器对齐

属性 含义
layout_alignParentLeft 与父容器左对齐
layout_alignParentRight 与父容器右对齐
layout_alignParentTop 与父容器顶对齐
layout_alignParentBottom 与父容器底对齐

(3)相对于其它控件位置

属性 含义
layout_toLeftOf 在……左边
layout_toRightOf 在……右边
layout_above 在……上面
layout_below 在……下面

(4)相对于其它控件对齐

属性 含义
layout_alignLeft 与……左对齐
layout_alignRight 与……右对齐
layout_alignTop 与……顶对齐
layout_alignBottom 与……底对齐
layout_alignBaseLine 与……基线对齐

(5)标识符问题

标识符 含义
@+id/button 创建新的id(建议使用)
@id/button 引用已有的id

(二)案例演示:相对布局演示

1、创建安卓应用

  • 基于Empty Activity创建安卓应用 - RelativeLayoutDemo
  • 单击【Finish】按钮

2、准备图片素材

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

3、字符串资源文件

  • 字符串资源文件 - strings.xml
<resources><string name="app_name">相对布局演示</string><string name="upper_left_corner">左上角</string><string name="upper_right_corner">右上角</string><string name="lower_left_corner">左下角</string><string name="lower_right_corner">右下角</string><string name="center">中央</string><string name="upper_left">左上</string><string name="upper_right">右上</string><string name="lower_left">左下</string><string name="lower_right">右下</string><string name="ok">确定</string><string name="cancel">取消</string>
</resources>

4、主布局资源文件

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

  • 分析界面:首先确定【中央】按钮,然后其它按钮可以根据与它的相对位置关系来定位。【左上角】按钮、【右上角】按钮、【左下角】按钮与【右下角】按钮可以根据它与父容器的对齐方式来确定。

  • 添加中央按钮

  • 查看预览效果

  • 以【中央】按钮为参考点,添加【左上】按钮

  • 查看预览效果

  • 同理,添加【右上】、【左下】和【右下】按钮

  • 查看预览效果

  • 在【左下】按钮正下方添加【确定】按钮

  • 查看预览效果

  • 在【右下】按钮正下方添加【取消】按钮

  • 查看预览效果

  • 添加【左上角】、【右上角】、【左下角】和【右下角】按钮

  • 查看预览效果

5、启动应用,查看效果

  • 查看11个按钮的相对位置
  • 课堂练习:添加【上中】、【左中】、【右中】和【下中】四个按钮

三、归纳总结

  • 回顾本节课所讲的内容,并通过提问的方式引导学生解答问题并给予指导。

四、上机操作

  • 形式:单独完成
  • 题目:利用相对布局实现用户注册界面
  • 要求:用到标签、按钮、编辑框、单选按钮和复选框(同学们通过查阅资料使用这两种常用控件,后面我们专门讲述如何使用它们实现用户选择的功能)
  • 用户注册窗口
  • 用户注册窗口——>显示注册信息窗口

安卓讲课笔记3.3 相对布局相关推荐

  1. 安卓讲课笔记3.4 网格布局

    文章目录 零.学习目标 一.导入新课 二.新课讲解 (一)网格布局概述 1.布局特点 2.继承关系图 3.常用属性 (1)针对布局的属性 (2)针对子控件的属性 (二)案例演示:计算器界面 1.创建安 ...

  2. 安卓讲课笔记(9):列表视图

    安卓讲课笔记(9):列表视图 上次课我们通过"设置基本信息"案例,讲解了单选按钮与复选框的常用属性以及用法.单选按钮与复选框最关键的方法是 isChecked() ,根据该方法返回 ...

  3. 安卓案例:帧式布局演示(切换颜色)

    安卓案例:帧式布局演示(切换颜色) 一.帧式布局(FrameLayout) 帧式布局是一种层叠式的布局,后添加的控件会层叠在先添加的控件上. (一)继承关系图

  4. 安卓案例:利用相对布局实现注册页面

    安卓案例:利用相对布局实现注册页面 一.相对布局(RelativeLayout) 一个控件的位置取决于它和其它控件的相对关系.优点:比较灵活:缺点:掌握比较复杂.  (一ÿ

  5. 安卓app开发-05-Android xml布局详细介绍

    安卓app开发-05-Android xml布局详细介绍 虽然说有 墨刀,墨客 这些图形化开发工具来做 Android 的界面设计,但是我们还是离不开要去学习做安卓原生app,学习 xml 布局还是必 ...

  6. 安卓讲课笔记1.4 安卓平台架构

    文章目录 零.学习目标 一.导入新课 二.新课讲解 (一)安卓平台架构简述 1.Linux 内核 2.硬件抽象层 3.安卓运行时 4.原生 C/C++ 库 5.Java API 框架 6.系统应用 ( ...

  7. 安卓入门系列-06常见布局之ConstraintLayout(约束布局)

    约束布局(ConstraintLayout)的使用 背景 之前已经提到了六大基础布局的最常见的两种,其余四种百度都有完整的教程,不多提及了.但是在布局的最后想提一下这个突然崛起的约束布局. 很多人说现 ...

  8. epic怎么添加本地游戏_游戏日报:原神公测无法上架多家安卓渠道;Epic投资布局游戏UGC平台...

    // 热点标签 ///  NOCITCE 华为|小米|OPPO|米哈游|腾讯|莉莉丝 B站|阅文集团|Epic|万国觉醒|灰烬战线 FGO|怪物弹珠|勇者斗恶龙|金币大师 阴阳师|和平精英|王者荣耀| ...

  9. 安卓讲课笔记2.1Activity概述——上机操作

    设置启动窗口,实现跳转窗口 (一)创建自定义Activity 1.基于普通类创建自定义Activity 2.基于模板来创建自定义Activity (二)注册自定义Activity 1.查看项目清单文件 ...

最新文章

  1. linux下用phpize给PHP动态添加扩展
  2. ATOM中MARKDOWN的使用小结
  3. mysql:视图,触发器,事务,存储过程,函数
  4. 源码学习【HashMap第二篇】hashMap为什么size 是2的 n次方倍
  5. 一加7充电_一加真无线耳机曝光,65W快速充电器获认证
  6. C#中用WebClient.UploadData 方法上载文件数据
  7. oracle的口令就是密码吗,如何修改Oracle用户的密码(不改变原密码)
  8. node.js查询oracle,nodejs操作oracle数据库示例
  9. swift 笔记 (十三) —— 继承
  10. 大势至服务器共享文件监控软件8.6,大势至服务器共享文件夹监控软件、局域网共享管理软件、局域网共享设置软件...
  11. Windows 10下adb、fastboot工具的配置
  12. 怎样用计算机算出54188,2010年考研计算机考生给教育部长的一封信(转自猫扑)...
  13. 【元胞自动机】基于元胞自动机之地铁火灾疏散模型matlab源码
  14. vestacp调整php.ini,VestaCP中roundcube的SMTP配置方法
  15. 华为交换机CPU处理报文原理
  16. 三维模型重建(1):关于三维模型重建的一些简介
  17. 在我的订单中,点击去付款查看每个订单详情
  18. windows操作系统32位与64位的含义
  19. mysql sending data 耗时_mysql查询语句出现sending data耗时解决
  20. LeetCode 834

热门文章

  1. VS验证码随机生成和字数控制
  2. Window对象(1)
  3. 计算机dj音乐,dj多多电脑版
  4. 赋能云会议渠道,开会宝 vymeet发布“梧桐计划”,培养未来的合作伙伴
  5. dbm是怎么定义的?
  6. 【三级等保】三级等保办理流程经验大分享
  7. Express Invoice Plus for Mac(专业财务管理软件)
  8. Android 连接Mysql数据库步骤(新手步骤)
  9. C# WinForm开发框架
  10. [游戏商业化]一些基础概念点,做个记录