Android相对布局(RelativeLayout)常用属性、练习使用按键、文本框等控件、线性布局(LinearLayout)属性

RelativeLayout中子控件常用属性:

子控件默认是从父控件的左上角开始排列的

  • 相对于父控件
 android:layout_alignParentTop="true"     和父控件的顶部对齐android:layout_alignParentBottom="true"  和父控件的底部对齐android:layout_alignParentRight="true"   和父控件的右端对齐android:layout_alignParentLeft="true"    和父控件的左端对齐
  • 相对于给定的ID控件
android:layout_above="@id/cat1"        控件的底部置于给定ID的控件之上
android:layout_below="@id/cat1"        控件底部置于给定ID的控件之下·
android:layout_toRightOf="@id/cat1"    控件的左边缘与给定ID的控件的右边缘对齐
android:layout_toLeftOf="@id/cat1"     控件的右边缘与给定ID的控件的左边缘对齐
android:layout_alignBottom="@id/cat1"  与给定控件的底边缘对齐
android:layout_alignLeft="@id/cat1"    与给定控件的左边缘对齐
android:layout_alignTop="@id/cat1"     与给定控件的定边缘对齐
android:layout_alignRight="@id/cat1"   与给定控件的右边缘对齐
android:layout_alignBaseline="@id/cat1"控件的Baseline与给定ID控件的Baseline对齐,其实这个baseline相当于笔记本里写文字时候的底下的那条线android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
android:layout_toRightOf  在某元素的右边
  • 居中
 android:layout_centerHorizontal="true"    水平居中android:layout_centerVertical="true"      垂直居中android:layout_centerInParent="true"      相对于父控件处在正中央

一个简单的登录界面:

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><RelativeLayoutandroid:layout_height="150dp"android:layout_width="400dp"android:layout_centerInParent="true"android:background="#ff0000"><TextViewandroid:id="@+id/user"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="10dp"android:text="用户:"android:textSize="20dp"android:textColor="#ffffff"/><EditTextandroid:id="@+id/userline"android:layout_marginTop="5dp"android:layout_width="300dp"android:layout_height="40dp"android:layout_toRightOf="@id/user"/><TextViewandroid:id="@+id/passwd"android:layout_marginTop="10dp"android:layout_below="@id/user"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密码:"android:textSize="20dp"android:textColor="#ffffff"/><EditTextandroid:id="@+id/passwdline"android:layout_width="300dp"android:layout_height="40dp"android:layout_below="@id/userline"android:layout_toRightOf="@id/passwd"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="确定"android:layout_alignParentRight="true"android:layout_below="@id/passwdline"/></RelativeLayout>
</RelativeLayout>

所的结果:
在这里插入图片描述
布局间的所属关系:
在这里插入图片描述

Margin和Padding:

盒模型(控件)主要定义四个区域:内容 (content)、边框距(padding)即内边距、边界(border)和外边距(margin)。 对于初学者,经常会搞不清楚margin,background-color,background- image,padding,content,border之间的层次、关系和相互影响。这里提供一张盒模型的平面示意图,希望便于你的理解和记忆。Margin 是整体移动,带着控件里面的内容(content),而padding 是移动控件里面的内容相对于控件Bprder的距离。
在这里插入图片描述
将上述界面进行美化:

<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><RelativeLayoutandroid:id="@+id/laout1"android:layout_height="150dp"android:layout_width="400dp"android:layout_centerInParent="true"android:background="#ff0000"><TextViewandroid:id="@+id/user"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:text="用户:"android:textSize="20dp"android:textColor="#ffffff"/><EditTextandroid:id="@+id/userline"android:layout_marginTop="5dp"android:layout_width="300dp"android:layout_height="40dp"android:layout_toRightOf="@id/user"/><TextViewandroid:id="@+id/passwd"android:layout_marginTop="20dp"android:layout_below="@id/user"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:text="密码:"android:textSize="20dp"android:textColor="#ffffff"/><EditTextandroid:id="@+id/passwdline"android:layout_width="300dp"android:layout_height="40dp"android:layout_below="@id/userline"android:layout_toRightOf="@id/passwd"/><Buttonandroid:id="@+id/btn1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_marginLeft="90dp"android:text="确定"android:layout_below="@id/passwdline"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="取消"android:layout_toRightOf="@id/btn1"android:layout_below="@id/passwdline"android:layout_marginLeft="80dp"/></RelativeLayout><RelativeLayoutandroid:id="@+id/layout2"android:background="#ff0000"android:layout_width="match_parent"android:layout_height="match_parent"android:layout_below="@id/laout1"android:layout_marginTop="10dp"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_margin="100dp"android:src="@drawable/picture2"/></RelativeLayout>
</RelativeLayout>

如下图所示:
在这里插入图片描述

安卓按键快速美化:

  • 在res/drawable目录下新建按钮样式文件 btn_normal.xml(正常状态) 和 btn_pressed.xml(按下状态)。

btn_normal.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shapexmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!-- 圆角的半径 --><corners android:radius="10dp"/><!-- 填充颜色 --><solid android:color="#3a8fea"/>
</shape>

btn_pressed.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!-- 圆角的半径 --><corners android:radius="10dp"/><!-- 填充颜色 --><solid android:color="#0662f5"/>
</shape>
  • 在res/drawable目录下新建样式文件 btn_selector.xml 文件,定义按钮的不同状态样式。

btn_selector.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><!-- 正常状态 --><item android:drawable="@drawable/btn_normal" android:state_pressed="false"/><!-- 按下状态 --><item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/></selector>

练习制作刷卡界面:

<RelativeLayout 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/bg_shopping_menu"tools:context=".MainActivity" ><ImageView android:layout_height="wrap_content"android:layout_width="wrap_content"android:layout_centerInParent="true"android:src="@drawable/pic_rf"/><ImageViewandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:layout_centerInParent="true"android:src="@drawable/card"android:paddingLeft="100dp"android:paddingTop="50dp"/><Buttonandroid:layout_height="wrap_content"android:layout_width="wrap_content"android:layout_centerHorizontal="true"android:layout_marginBottom="30dp"android:layout_alignParentBottom="true"android:text="刷卡"android:background="@drawable/btn_selector"android:textColor="#ff0000"/><RelativeLayoutandroid:layout_height="wrap_content"android:layout_width="match_parent"android:background="#00ff00"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="30dp"android:text="刷卡界面"android:layout_marginLeft="20dp"/><Buttonandroid:id="@+id/butn1"android:layout_height="wrap_content"android:layout_width="wrap_content"android:text="注册"android:layout_alignParentRight="true"     /><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="查询信息"android:layout_toLeftOf="@id/butn1"android:layout_marginRight="20dp"/></RelativeLayout></RelativeLayout>

结果如下:
在这里插入图片描述
LinearLayout常用属性(它的父控件还是RelativeLayout,所以RelativeLayout的属性还可以拿来用):

  • orientation: 布局中控件的排列方式,有vertical(竖直,默认)horizontal(水平)两种方式
  • gravity:控制组件所包含的子元素的对齐方式,可多个组合,如left|buttom(这个是基础控件相对于父控件来说的)
  • layout_gravity: 控制该组件在父容器中的对齐方式,(这个是布局控件相对于父控件来说的)
  • layout_width:布局宽度,通常不直接写数字的,用wrap_content(组件实际大小)fill_parent或者match_marent(填满父容器)
  • layout_height:布局的高度,参数同上
  • background:为组件设置一个背景图片,或者直接用颜色覆盖

Weight(权重):

该属性用来等比例地划分区域。

  • 最简单的用法:要等比例划分,分谁,谁为0,Weight按比例即可
  • 当我们设置宽度为0dp时,同时设置weight属性为1,意思就是在宽度方向上所占比重为1。如果将height设置为0,同时设置weight属性为2,意思就是在竖直方向所占比重为2。

divider分割线:

该属性用于LinearLayout设置分割图片,通过showDivider来设置分割线的所在位置,有四个可选值:nonemiddlebeginingend,当然还可以通过:

  • divider: 为LinearLayout设置分割线的图片
  • showDivider: 设置分割线所在位置,有四个通道:nonemiddlebeginingend
  • dividerPadding: 设置分割线的Padding

设置分割线(divider):
在这里插入图片描述
在这里插入图片描述
然后编辑该分割线的代码:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line">      shape是分割线的形状<sizeandroid:width="200dp"  分割线的宽android:height="2dp"   分割线的高/><strokeandroid:color="#000000"  这个是分割线的颜色/>
</shape>

使用线性布局和相对布局写一个丑陋的登录界面:

<RelativeLayout 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/bg_shopping_menu"tools:context=".MainActivity" ><LinearLayoutandroid:layout_width="300dp"android:layout_height="wrap_content"android:layout_centerInParent="true"android:orientation="horizontal" ><LinearLayoutandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="1"android:divider="@drawable/divider"android:showDividers="middle|end"android:dividerPadding="2dp"android:orientation="vertical" ><TextViewandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:gravity="center"android:textStyle="bold"android:textSize="15dp"android:text="账号:" /><TextViewandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:gravity="center"android:textStyle="bold"android:textSize="15dp"android:text="密码:" /><TextViewandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"android:gravity="center"android:textStyle="bold"android:textSize="15dp"android:text="ID:" /></LinearLayout><LinearLayoutandroid:layout_width="0dp"android:layout_height="match_parent"android:layout_weight="5"android:orientation="vertical" ><EditTextandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /><EditTextandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /><EditTextandroid:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1" /></LinearLayout></LinearLayout></RelativeLayout>

结果如下图所示:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/272071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Seata AT模式

基本思路 先决条件 支持本地ACID事务的关系数据库。通过JDBC访问数据库的Java应用程序。 整体机制 从两个阶段提交协议的演变&#xff1a; 阶段1&#xff1a;在同一本地事务中提交业务数据和回滚日志&#xff0c;然后释放本地锁和连接资源。阶段2&#xff1a; 对于提交情况…

自媒体各大平台收益对比_哪些自媒体平台没有新手期,适合小白撸收益?

2-26把我设置为星标&#xff0c;不错过每一次的干货&#xff5e;各大自媒体平台的新手期总是让小白们望而却步&#xff0c;特别是百家号审核非常严格&#xff0c;如果没思路、没人指导&#xff0c;过新手有难度。不过&#xff0c;还是有很多平台对新手宝宝很友好&#xff0c;没…

Linux关于文件的权限笔记

1、调整文件的权限命令&#xff1a;chmodLinux的每个文件都定义了文件的拥有者&#xff1a;u(user)、拥有组&#xff1a;g&#xff08;group&#xff09;、其他人&#xff1a;o&#xff08;others&#xff09;权限&#xff0c;对应的权限用rwx的组合来定义。使用chmod命令&…

启动rrt什么意思_python学习第144课--创建虚拟机、设置虚拟机参数以及启动虚拟机...

【每天几分钟&#xff0c;从零入门python编程的世界&#xff01;】上节我们介绍了下载虚拟机以及centOS的相关事项&#xff0c;现在我们创建虚拟机。●创建虚拟机安装好virtualbox之后&#xff0c;我们点击Oracle VM VirtualBox打开管理器&#xff0c;界面如下图&#xff1a;你…

Android按键响应的几种方式、安卓页面的跳转、页面跳转传参、页面自动跳转、Activity(页面)的生命周期

按键响应的第一种方式&#xff1a; 在XML文件里面设置按键的onClick绑定函数。就像下面的代码&#xff0c;给Button设置onClick属性&#xff0c;在按键被按下的时候&#xff0c;会调用java文件里面的onClickbtton1这个函数&#xff0c;因为现已将它和这个按钮进行了绑定。利用…

pycharm体验

查看python版本 退出 exit()

Linux文本检索命令grep笔记

grep是在linux系统中基于行文本非常实用检索工具&#xff0c;通过该命令可以将匹配到的结果信息输出到终端控制台。语法格式&#xff1a;grep [-ivnc] 需要匹配的内容 文件名常用参数说明&#xff1a;-i 检索的时候不区分大小写-c 检索到的匹配行数-n 检索到的匹配行显式具体的…

成立出版社的条件_创始人亲述:法国鸿飞文化出版社的诞生故事和做书心得

鸿飞文化出版社2007年在法国创立&#xff0c;专门出版由中国作家和法国插画师共同创作的图画书。创始人叶俊良引用苏东坡的诗句“人生到处知何似&#xff0c;应似飞鸿踏雪泥。泥上偶然留指爪&#xff0c;鸿飞那复计东西。”为出版社取名&#xff0c;希望通过这些“印迹”为读者…

python单行注释和多行注释

# 后面加一个空格&#xff0c;下面就不会有波浪线了 点击小灯泡下的第一行&#xff0c;可以调整注释格式 多行注释

Linux文件查询笔记

1、数据库查找命令&#xff1a;locateLinux也可以通过locate命令查找文件&#xff0c;locate命令主要是依据一个数据库文件来执行文件的查找&#xff0c;默认情况下Linux每天会默认检索系统中的所有文件&#xff0c;然后把检索的文件信息记录到数据库文件中。因为运行locate命令…

柱坐标系下的ns方程_麦克斯韦方程组小结

一、▽ 算子、点积、叉积l▽ 算子叫“del”算子&#xff0c;即<< span"">∂/∂x,∂/∂y,∂/∂z>,可以理解为一个符号向量&#xff0c;向量里的元素是偏微分运算符号&#xff0c;没有任何具体意义&#xff0c;只是一个表示方法。ln维向量的内积定义如下&a…

Linux进程终止命令kill或killall​笔记

在linux命令下&#xff0c;如果需要终止某个进程&#xff0c;可以使用kill或者killall等命令来实现。终止命令的原理都是向linux内核发送一个系统操作的信号以及某个进程的ID&#xff0c;然后系统内核会根据指定的进程ID进行相应的处理。kill命令典型的用法&#xff1a;首先使用…

Visual Studio的调试技巧

Visual Studio的调试技巧 【原文地址】 Debugging Tips with Visual Studio 2010 【原文发表日期】 2010/8/19 10:48 AM 这是我写的关于VS2010和.Net4发布的博客系列的第26篇。 今天的博文包含了一些有用的能用于VS的调试技巧。 我的朋友 Scott Cate&#xff08;他写了很多很…

Linux排序命令sort笔记

很多时候Linux需要对文本相对比较规范的文本数据进行排序&#xff0c;这时候可以使用Linux系统下的sort命令进行处理。语法格式&#xff1a;sort [-ntkr] filename常用参数&#xff1a;-n 根据数字进行排序-t 指定的分隔符-k 指定分隔符的第几列-r 降序排序用法示例&#xff1a…

redirect路由配置 vue_Web前端:Vue路由进阶配置

大家好&#xff0c;我来了&#xff0c;本期为大家带来的前端开发知识是”Web前端&#xff1a;Vue路由进阶配置“&#xff0c;有兴趣做前端的朋友&#xff0c;和我一起来看看吧&#xff01;1. 页面打开权限流程页面是否能打开有以下两点判断&#xff1a;1. 判断是否增加登陆的判…

python格式化输出

格式化输出字符串 格式化输出整数 格式化输出浮点数 输出&

Linux常用内建命令笔记

Linux系统为了便于运维人员对系统的操作&#xff0c;所以内建了很多shell命令。一般来说linux系统的内建命令会比执行外部的shell命令执行更快。因为执行内建命令相当于调用当前shell进程里面的函数&#xff0c;而执行外部命令的话需要出发IO操作还要fork一个单独的进程来执行&…

asp手机拍照显示_会员动态飞凯材料120吨TFTLCD混合液晶显示项目,建后五年达产...

来源 &#xff1a;全景网10月26日&#xff0c;在飞凯材料可转债发行网上路演会议上&#xff0c;该公司相关人员也对投资者关心的问题进行解答。关于发行8.25亿元可转换债券&#xff0c;飞凯材料表示本次募集资金扣除发行费用后将用于投资以下项目&#xff1a;10000t/a紫外固化光…