《物联网Android程序开发案例式教程》Demo2:相对布局
一、必备知识
相对布局的控件位置设置主要分为以下两种:
1、控件根据父布局来定位
属性名 | 描述 | 取值 |
android:layout_alighParentLeft | 控件相对父布局左对齐 | true或false |
android:layout_alighParentRight | 控件相对父布局右对齐 | true或false |
android:layout_alighParentTop | 控件相对父布局上对齐 | true或false |
android:layout_alighParentBottom | 控件相对父布局下对齐 | true或false |
android:layout_centerHorizontal | 控件相对父布局水平居中 | true或false |
android:layout_centerVertical | 控件相对父布局垂直居中 | true或false |
android:layout_centerInParent | 控件相对父布局水平且垂直居中 | true或false |
2、控件根据兄弟控件来定位
属性名 | 描述 | 取值 |
android:layout_toLeftOf | 控件在另一个控件左边 | 另一个控件的id |
android:layout_toRightOf | 控件在另一个控件右边 | 另一个控件的id |
android:layout_above | 控件在另一个控件上边 | 另一个控件的id |
android:layout_below | 控件在另一个控件下边 | 另一个控件的id |
android:layout_alighTop | 控件相对另一控件上对齐 | 另一个控件的id |
android:layout_alighBottom | 控件相对另一控件下对齐 | 另一个控件的id |
android:layout_alighLeft | 控件相对另一控件左对齐 | 另一个控件的id |
android:layout_alighRight | 控件相对另一控件右对齐 | 另一个控件的id |
二、案例
1、案例分析
本案例效果图整体布局可以使用相对布局,内部可以解析成两部分内容,第一部分为正中心的按钮1与父布局四个角的按钮2、按钮3、按钮4、按钮5,第二部分为与正中心按钮1相邻四个角的按钮6、按钮7、按钮8、按钮9。
(1)为了方便找到每个按钮,我们会在. xml代码中给每个按钮加上一个android:id属性来区分不同的按钮。例如给按钮1加上id代码如下:
android:id= "@+id/btn1"
同理,给按钮2加上id值为btn2,... ,按钮9加上id值为btn9。
(2)按钮1想要设置成正中心位置,可以在其内部加上如下代码:
android:layout_centerInParent = "true"
(3)按钮2想要设置成整个界面左上角位置,可以在其内部加上如下代码:
android:layout_alignParentLeft= "true"
android:layout_alignParentRight = "true"
(4)按钮3想要设置成整个界面右上角位置,可以在其内部加上如下代码:
android:layout_alignParentRight = "true"
android:layout_alignParentTop= "true'
(5)按钮4想要设置成整个界面左下角位置,可以在其内部加上如下代码:
android:layout_alignParentLeft = "true"
android:layout_alignParentBottom= "true"
(6)按钮5想要设置成整个界面右下角位置,可以在其内部加上如下代码:
android:layout_alignParentRight= "true"
android:layout_alignParentBottom= "true"
(7)按钮6想要设置成按钮1相邻的左上角位置,可以在其内部加上如下代码:
android:layout_toLeftOf = "@id/btn1"
android:layout_above= "@id/btn1"
(8)按钮7想要设置成按钮1相邻的右上角位置,可以在其内部加上如下代码:
android:layout_toRightOf = "@id/btn1"
android:layout_above= "@id/btn1"
(9)按钮8想要设置成按钮1相邻的左下角位置,可以在其内部加上如下代码:
android:layout_toLeftOf = "@id/btn1"
android:layout_below= "@id/btn1"
(10)按钮9想要设置成按钮1相邻的右下角位置,可以在其内部加上如下代码:
android:layout_toRightOf = "@id/btn1"
android:layout_below = "@id/btn1"
2、案例实现
在Iayout目录下新建线性布局layout_relative.xml文件,并修改MinAetivir.java中的onCreate()方法的语句为setContentView( R. layout. layout_ relative)。 案例布局的完整代码如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android"android:layout_width = "match_parent"android:layout_height = "match_parent"><Buttonandroid:id= "@+id/btn1"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:layout_centerInParent = "true"android:text= "按钮1"/><Buttonandroid:id= "@+id/btn2"android:layout_width= "wrap_content"android:layout_height = "wrap_content"android:layout_alignParentLeft = "true"android:layout_alignParentTop = "true"android:text = "按钮2"/><Buttonandroid:id= "@+id/btn3"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:layout_alignParentRight = "true"android:layout_alignParentTop= "true"android:text = "按钮3"/><Buttonandroid:id= "@+id/btn4"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:layout_alignParentLeft = "true"android:layout_alignParentBottom= "true"android:text = "按钮4"/><Buttonandroid:id= "@+id/btn5"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:layout_alignParentRight = "true"android:layout_alignParentBottom= "true"android:text = "按钮5"/><Buttonandroid:id= "@+id/btn6"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:layout_toLeftOf = "@id/btn1"android:layout_above = "@id/btn1"android:text= "按钮6"/><Buttonandroid:id= "@+id/btn7"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:layout_toRightOf = "@id/btn1"android:layout_above = "@id/btn1"android:text= "按钮7"/><Buttonandroid:id= "@+id/btn8"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:layout_toLeftOf = "@id/btn1"android:layout_below = "@id/btn1"android:text= "按钮8"/><Buttonandroid:id= "@+id/btn9"android:layout_width = "wrap_content"android:layout_height = "wrap_content"android:layout_toRightOf = "@id/btn1"android:layout_below = "@id/btn1"android:text= "按钮9"/></RelativeLayout>
其运行结果如下:
注意
android:xxxx、@+id/btn1、@id/btn1的冒号千万千万不要有空格,否则一直报错,改了一大片的辛酸血泪史!!!
所以在敲代码的时候最好不要空格,紧凑敲就行。
《物联网Android程序开发案例式教程》Demo2:相对布局相关推荐
- 《物联网Android程序开发案例式教程》Demo4:模拟进度条
在日常的应用中,我们经常会下载App.文件等,此时,就需要进度条来提示我们下载进度.这一章将教大家如何模拟下载进度条效果. 本案例需要用到的控件有显示图片的ImageView. 进度条控件Progre ...
- Android程序开发0基础教程(一)
程序猿学英语就上视觉英语网 Android程序开发0基础教程(一) 平台简单介绍 令人激动的Google手机操作系统平台-Android在2007年11月13日正式公布了,这是一个开放源码的操作系统, ...
- 《Android开发案例驱动教程》
<Android开发案例驱动教程> 作者:关东升,赵志荣 Java或C++程序员转变成为Android程序员 采用案例驱动模式展开讲解知识点,即介绍案例->案例涉及技术->展开 ...
- 【Android】Android应用开发案例教程
<Android应用开发案例教程(高等学校计算机科学与技术项目驱动案例实践规划教材)>应用"项目驱动(project-driven) "最新教学模式,通过完整的项目案例 ...
- C语言程序设计案例式教程
C语言程序设计案例式教程 数据类型与运算符 变量的数据类型 :整形变量,实型变量,字符型变量,枚举类型变量: (单引号内只可以存放转义字符.一个字符) 数据类型 所占字符数 char 1个字节 int ...
- android 程序开发的插件化
本文为 博客园 黑暗伯爵 原创,转载请注明 http://hangxin1940.cnblogs.com 原文地址:android 程序开发的插件化 模块化方法 之一 框架已经放出: android ...
- android布局管理器模仿qq登录效果,Android程序开发仿新版QQ锁屏下弹窗功能
新版的qq,可以在锁屏下弹窗显示qq消息,正好目前在做的项目也需要这一功能.经过各种试验和资料查找,终于实现,过程不难,但是却有一些地方需要注意. 下面是实现过程. 1.使用Activity,而不是V ...
- 干洗店洗鞋店小程序开发案例
今天给大家介绍的是一个洗衣店洗鞋店小程序开发案例 程序主要实现: 为洗衣客户提供高性价比洗衣服务,提供上门取送,让您的时间更充足. 用户填写衣物名称和件数.提货地点和时间平台即可自动分配专业人员上门取 ...
- VScode使用SSH连接Linux(Ubuntu)系统程序开发,详细教程
VScode使用SSH连接Linux(Ubuntu)系统程序开发,详细教程 VScode使用SSH连接Linux(Ubuntu)系统程序开发 1.安装SSH 2.SSH连接远程服务器 3.远程编程开发 ...
- android程序开发教案,Android移动应用开发基础教程教案.doc
教 案 课 程 名 称Android移动应用开发基础教程(微课版)课 程 代 码系(部)教研室(实验室)授 课 教 师职 称 年 月 课 程 名 称Android移动应用开发基础教程(微课版)总计: ...
最新文章
- 写到usaco上的一题可能题解是凸包所以转来这篇文章看看
- 【原创】分布式之缓存击穿 【原创】自己动手实现静态资源服务器 【原创】自己动手实现JDK动态代理...
- ad09机械层说明_悉数PCB上的各种层
- Oracle创建删除用户、角色、表空间、导入导出数据库命令行方式总结
- 【POJ - 2378】Tree Cutting(树形dp,树的重心变形)
- Laravel源码解析之QueryBuilder
- JUnit4套件测试
- 付出与收获对等的自然法则,执行力离开去做马上去做
- 按键精灵注册服务器,按键精灵网页注册脚本教程
- 小甲鱼 c语言 17课
- FreeSWITCH之默认端口
- jQ模拟下拉框以及向下三角
- 基于SSM的商城管理系统
- 关于IAP支付,谷歌和苹果订阅商品——最白话,手把手教你做系列。
- AutoJs学习-实现自动加群成员好友
- GPS传感器数据帧格式
- matplotlib中cmap与color参数的设置
- win10应用商店闪退及应用商店相关小程序打不开解决办法
- 编译基于obs-studio的阿里巴巴直播工具tblive的过程和常见问题解决
- TensorFlow2.0--Chapter01环境搭建
热门文章
- MySQL入门:如何创建数据库?
- 十代主板改win7_10代cpu装win7系统及bios设置教程(完美支持10代驱动)
- vue,微信小程序,插件库,前端框架,PPT,工具,源码等学习网站
- Mstar的Monitor方案笔记(五)——Gamma
- 船载电子海图系统(E C S )概述
- oracle中聚合比较函数,Oracle 分析函数与聚合函数区别
- 微信小程序架构图与开发
- 网站/APP 流量分析、用户访问分析
- h5小游戏构建架设h5棋牌平台开发制作
- python内存注入代码,python语言编写的DLL注入工具