欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是:Android界面布局中的相对布局。

1、RelativeLayout的概述

(1) RelativeLayout是一个允许子视图相对于其他兄弟视图或是父视图显示的视图组(通过ID指定)。每个视图的位置能够指定它相对于兄弟(比如在其他视图的左边或是下边)或是父视图(这里是指相对布局容器,比如底部对齐、中间偏左)的位置。

(2) 在相对布局中如果不指定控件摆放的位置,那么控件都会被默认放在RelativeLayout的左上角。因此要先指定第一个控件的位置,再根据一个控件去给其他控件布局。

2、RelativeLayout的属性和定位

(1) 基本属性

gravity:设置容器内组件的对齐方式。

ignoreGravity:该属性为true的组件,将不受gravity属性的影响。

margin:设置组件与父容器的边距,又叫偏移。

padding:设置组件内部元素间的边距。

(2)根据父容器定位

layout_alignParentLeft 左对齐

layout_alignParentRight 右对齐

layout_alignParentTop 顶部对齐

layout_alignParentBottom 底部对齐

layout_centerHorizontal 水平居中

layout_centerVertical 垂直居中

layout_centerInParent 中间位置

(3) 根据兄弟组件定位

layout_toLeftOf 参考组件的左边

layout_toRightOf 参考组件的右边

layout_above 参考组件的上方

layout_below 参考组件的下方

layout_alignTop 对齐参考组件的上边界

layout_alignBottom 对齐参考组件的下边界

layout_alignLeft 对齐参考组件的左边界

layout_alignRight 对齐参考组件的右边界

3、举例说明

(1)实现的布局效果:

(2)对应的布局代码:

<?xml version="1.0" encoding="utf-8"?>

<!--【1.创建一个相对布局容器】-->

<RelativeLayout

android:id="@+id/container"

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="@color/colorPrimaryDark"

>

<!--【2.创建一个居中Button layout_centerInParent= ture 】-->

<Button

android:id="@+id/centerBtn"

android:layout_centerInParent="true"

android:background="#ff0000"

android:layout_width="100dp"

android:layout_height="100dp" />

<!--3.相对于中心控件的上面添加一个按钮 layout_above设置为centerBtn-->

<Button

android:id="@+id/topButton"

android:layout_above="@id/centerBtn"

android:layout_centerHorizontal="true"

android:background="#00ffff"

android:layout_width="100dp"

android:layout_height="100dp" />

<!--4.相对于中心控件的下面添加一个按钮 layout_below设置为centerBtn-->

<Button

android:id="@+id/buttomButton"

android:layout_below="@id/centerBtn"

android:layout_centerHorizontal="true"

android:background="#00ffff"

android:layout_width="100dp"

android:layout_height="100dp" />

<!--5.相对于中心控件的左面添加一个按钮 layout_toLeftOf-->

<Button

android:id="@+id/leftButton"

android:layout_toLeftOf="@id/centerBtn"

android:layout_centerVertical="true"

android:background="#ffffff"

android:layout_width="100dp"

android:layout_height="100dp" />

<!--6.相对于中心控件的左面添加一个按钮 layout_toLeftOf-->

<Button

android:id="@+id/rightButton"

android:layout_toRightOf="@id/centerBtn"

android:layout_centerVertical="true"

android:background="#ffffff"

android:layout_width="100dp"

android:layout_height="100dp" />

</RelativeLayout>

开头:人人都可写代码-Android零基础编程-序言-01

下一篇:人人都可写代码-Android零基础编程-帧布局12

android 按钮顶级效果_人人都可写代码-Android零基础编程-相对布局11相关推荐

  1. datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-发布活动界面实操07...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个发布活动界面的H5. 这是要实现的H5发布活动界面展示效果,下面就是教大家如何制作的步骤: 1.在views的项目s ...

  2. datagridview 绑定list 不能刷新界面_人人都可写代码-H5零基础编程-首页界面实操06...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个首页界面的H5. 这是要实现的H5首页界面展示效果,下面就是教大家如何制作的步骤: 1.在views的项目smart ...

  3. h5可以获取本机手机号码么_人人都可写代码-H5零基础编程-登录界面实操05

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,项目实操,开发一个登录界面的H5. 这是要实现的H5登录界面展示效果,手机号+验证码的登录方式:下面就是教大家如何制作的步骤: 1.在 ...

  4. qtdesigner怎么实现菜单栏跳转_人人都可写代码-Android零基础编程-app 入口菜单栏实操08...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是项目实操,以智者精选项目为例,编写一个Android app的入口关联菜单栏逻辑. 这是要实现的菜单栏组件展示效果,下面就是教大家如何制 ...

  5. android 不通过数据线打印日志_人人都可写代码-Android零基础编程-开发调试、APK编译04...

    欢迎来到人人都可写代码,大家好,我是杨晓华,今天我们的课程内容是,讲解Android开发中如何调试代码程序,开发完后如何打包成可发布的apk文件. 开发调试 在开发中,难免我们会遇到BUG,快速定位问 ...

  6. android 按钮顶级效果_Android 中按钮的点击效果

    Android 中按钮点击后的效果通常是通过更换图片,或者背景色来实现的. 之前做的一直都是手动写在点击事件里,今天发现了一种更合适的方法,写在xml文件中. 比如,我有两张图片,一张是点击前的bef ...

  7. android 按钮顶级效果_Android 源码之button高亮效果

    android默认的button在点击以后有默认的高亮效果,但是默认的button比较丑,要替换成自己的按钮背景,采用的方法是: button.setBackgroundDrawable(drawab ...

  8. android 按钮动画效果_【css特效】按钮动画 - 按压效果

    按钮动画 - "按压效果"​codepen.io <!DOCTYPE html> <html> <head><meta charset=& ...

  9. 11岁过python1级_11岁表弟写的Python零基础入门笔记!

    一.Python输入与输出输出:使用print()函数. print()函数的基本语法格式如下:print(输出内容). 输出内容可以是数字和字符串(字符串需要用引号括起来),也可以是包含运算符的表达 ...

最新文章

  1. mysql反应慢_MySQL反应慢排查思路
  2. 汇编语言——《分支与循环程序设计》实验任务书
  3. index.html图片弹窗,原生javascript实现图片弹窗交互效果
  4. 命令及串口命令_嵌入式Linux系列第7篇:使用串口
  5. jq倒计时html源码,jQuery实现倒计时功能
  6. java中布尔类型的常量有哪两种,【填空题】Java中布尔型的常量有两种,它们是___和___。...
  7. 精密单点定位/PPP软件GAMP学习之一
  8. 支持Android 11安卓Flash播放器终极版源码方案2022(1:概叙)
  9. 海思Hi3521/Hi3520A/Hi3520D/Hi3515A/Hi3515C U-boot 移植应用 开发指南
  10. Graph Convolutional Networks Meet Markov Random Fields: Semi-Supervised Community Detection in Attri
  11. 阿里云服务器购买及使用流程(新手入门图文教程)
  12. android仿美团评论
  13. H5跳转小程序页面/wx-open-launch-weapp/
  14. 压缩算法——FLAC (Free Lossless Audio Codec)编码原理
  15. 2023年,哪些Web3赛道的表现最值得期待?(文末有奖)
  16. Pi-puck的ROS开发之路
  17. 国产操作系统还有比windows系统要好的地方?
  18. 让你的鼠标变为中指 - 浏览器插件The Finger Cursor
  19. 第3章 OpenWrt应用层ipk编写及编译
  20. 波特率9600是什么意思

热门文章

  1. 华为天才少年1万块自制机械臂,网友:200万给少了
  2. Spring Boot 实现登录拦截器,这才是正确的姿势!!
  3. 三流面试问技术,二流面试问平台,一流面试……
  4. 我说我了解集合类,面试官竟然问我为啥HashMap的负载因子不设置成1!?
  5. Arthas - Java 线上问题定位处理的终极利器
  6. 查询SQLSERVER执行过的SQL记录
  7. Java进阶 | Proxy动态代理机制详解
  8. Vue学习笔记(5)(Vuex)
  9. 二,表格table的使用细节
  10. 路由器功能 后台管理 各功能 介绍