Android基础UI篇------六种基本布局

1.线性布局 LinearLayout

常用属性:

android:gravity 设置子控件的对齐方式

android:orientation 排列方式 (分为水平排列和垂直排列)

android:layout_gravity 设置相对于父控件的对齐方式

android:layout_weight 子控件在布局中所占的权重

!LinearLayout不会换行,所以,如果子控件超出屏幕范围,将不会显示。

2.表格布局 TableLayout

继承自LinearLayout,所以,它的本质依然是线性布局。

表格布局并不会明确声明其包含了多少行、多少列,而是通过添加TableRow、其他组件来控制行和列。

设置一个TableRow,即相当于添加了一个表格行。在其中添加子控件,即相当于添加一列。

三种行为方式:

android:collapseColumns 需要被隐藏的列序号

android:shrinkColumns 允许被收缩的列的列序号

android:strechColumns 允许被拉伸的列的列序号

3.帧布局 FrameLayout

为每一个加入其中的组件创建一个空白区域,先创建的组件会置于底层(和栈结构类似)

属性:

可以使用layout_gravity来设置相对于父布局的对齐方式‘

示例:霓虹灯效果

4.相对布局 RelativeLayout

gravity 子组件的对齐方式

centerHorizontal 水平居中

centerVertical 垂直居中

centerInParent 处于父容器的中间位置

alignParentBottom 是否与布局容器底端对齐

alignParentLeft 是否与布局容器左端对齐

alignParentRight 是否与布局容器右端对齐

alignParentTop 是否与布局容器顶端对齐

toRightOf 位于指定ID组件的右端

toLeftOf 位于指定ID组件的左端

above 位于指定ID组件的上方

below 位于指定ID组件的下方

alignTop 与指定ID组件的上边界对齐

alignBottom 与指定ID组件的下边界对齐

alignLeft 与指定ID组件的左边界对齐

alignRight 与指定ID组件的右边界对齐

5.网格布局 GridLayout

Android4.0之后新增的布局。

属性:

alignmentMode 对齐模式

columnCount 列数

rowCount 行数

子组件的属性

layout_column 设置该子组件在第几列

layout_columnSpan 设置该子组件横向跨几列

layout_row 设置该子组件在第几行

layout_rowSpan 设置该子组件纵向跨几行

layout_gravity 设置子组件的对齐方式

代码动态设置行和列:

1.设置新增组件所在的行

GridLayout.Spec rowSpec = GridLayout.spec(int);

2.设置新增组件所在的列

GridLayout.Spec columnSpec = GridLayout.spec(int);

3.把行和列加载到GridLayout

GridLayout.LayoutParams params = new GridLayout.LayoutParams(rowSpec,columnSpec);

4.指定该组件占满父容器

params.setGravity(Gravity,fill);

5.把组件加载到布局中

gridlayout.addView(view,params);

示例:计算器UI布局

6.绝对布局 AbsoluteLayout

手机屏幕的分辨率千差万别,使用绝对布局很难兼顾不同的屏幕大小。所以,AbsoluteLayout已经过时。

版权声明:刚出锅的原创内容,希望对你有帮助~

时间: 2024-11-25 11:36:50

Android基础UI篇------六种基本布局的相关文章

Android基础UI篇------TextView及其子类

一.TextView 继承自View类,本质上就是一个文本编辑器,只是Android关闭它的编辑功能.把编辑文字的功能交给了它的子类--EditText. 特殊之处: 1.通过设置ellipsize=marquee,可以实现"跑马灯" android:width="wrap_content" android:focusable = "true" android:singleline = "true" android:ellip

android基础总结篇之五:BroadcastReceiver应用详解

一.概述 broadcastReceiver  顾名思义,广播接收者,他是用来接收来自系统和应用中的广播. 在android系统中,广播体现在方方面面,例如开机完成后,系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能:当网络状态改变时,系统会产生一条广播,接收到这条广播就能及时的作出提示和保存数据等操作:当电池电量改变时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户及时保存进度,等等. 什么是广播? 广播,我的理解就是系统中消息的一个变种:就是当一个事件发生时,如系统濡染

Android基础Activity篇——Intent

1.显式的Intent intent是用来各各活动之间切换的,还可以用来传递参数. 项目还是使用之前创建的ActivityTest项目,这里新建一个活动SecondActivity.java,并且勾选创建second_layout.xml. 在second_layout.xml.写入代码如下. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:

【朝花夕拾】Android自定义View篇之(八)多点触控(上)基础知识

前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/11155259.html],谢谢! 在前面的文章中,介绍了不少触摸相关的知识,但都是基于单点触控的,即一次只用一根手指.但是在实际使用App中,常常是多根手指同时操作,这就需要用到多点触控相关的知识了.多点触控是在Android2.0开始引入的,在现在使用的Android手机上都是支持多点触控的.本系列文章将对常见的多点触控相关的重点知识进行总结,并使用多点触控来实现一些常见的效果,从而达到将

Android Camera开发之基础知识篇

概述 Android框架支持设备的相机拍照和录像功能,你的应用可以直接调用系统的Camera应用来拍照或者录像(比如微信拍照),当然也可以利用Android系统提供的API开发一个Camera应用来实现相机拍照和录像功能(比如市面上流行的360相机).此篇文章主要记录相机开发有关的基础知识,以及带着自己的理解翻译Camera官方文档,如有翻译不恰当支出,还请指出改正.当然我会开一个有关相机开发的一个系列,该系列主要内容包括如下: 相机基本预览拍照功能. 实现相机的Flash,Hdr,滤镜,前后摄

安卓布局修改基础常识篇之TextView属性

[天使]安卓布局修改基础常识篇之TextView属性 在修改布局xml文件时需要熟练掌握一些属性,以下是TextView也就是文本的属性:android:autoLink 是否自动链接网址或邮箱地址:android:autoText 自动检测错误:android:bufferType 决定getText()返回的类型android:capitalize 指定使用类型android:cursorVisible 光标是否可见android:digits 数字输入android:drawableBot

Android基础入门教程——2.2.1 LinearLayout(线性布局)

Android基础入门教程--2.2.1 LinearLayout(线性布局) 标签(空格分隔): Android基础入门教程 本节引言: 本节开始讲Android中的布局,Android中有六大布局,分别是: LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout(表格布局) FrameLayout(帧布局),AbsoluteLayout(绝对布局),GridLayout(网格布局) 而今天我们要讲解的就是第一个布局,LinearLayout(线

Android基础入门教程——2.2.2 RelativeLayout(相对布局)

Android基础入门教程--2.2.2 RelativeLayout(相对布局) 标签(空格分隔): Android基础入门教程 本节引言: 在上一节中我们对LinearLayout进行了详细的解析,LinearLayout也是我们 用的比较多的一个布局,我们更多的时候更钟情于他的weight(权重)属性,等比例划分,对屏幕适配还是 帮助蛮大的;但是使用LinearLayout的时候也有一个问题,就是当界面比较复杂的时候,需要嵌套多层的 LinearLayout,这样就会降低UI Render

Android基础入门教程——2.2.4 FrameLayout(帧布局)

Android基础入门教程--2.2.4 FrameLayout(帧布局) 标签(空格分隔): Android基础入门教程 本节引言: FrameLayout(帧布局)可以说是六大布局中最为简单的一个布局,这个布局直接在屏幕上开辟出 一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式 却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件 的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!后续添加的控件会覆盖