我学习android第一步接触的就是布局的学习。布局是androidUI的基础,是重中之重。总的来说android有6种布局,分别是线性布局LinearLayout、相对布局RelativeLayout、帧布局FrameLayout、绝对布局AbsoluteLayaout、表格布局TableLayout、网格布局GridLayout。我觉得开发过程中最常用的就是前三种,下面就来总结一下前三种布局的属性。

线性布局LinearLayout:

android:orientation 设置线性布局的走向:水平(horizontal),垂直(vertical)
垂直线性布局:每一行只能放一个控件,到底部放不下就会被挤出去,
水平线性布局:每一列只能放一个控件,到右边放不下就会被挤出去。
如果不设置该属性 默认为水平。

控件的宽高:
属性:match_parent/fill_parent 填充父窗体(fill_parent 已弃用)
wrap_content 包裹内容
绝对数字 例如150dp

background:设置背景颜色:

出现的位数: 3/4 6/8 ARGB (alpha(透明度) red green blue)

#00ffffff 完全透明
#ffffffff 完全不透明
#88ffffff 半透明

#fff 白色 ffffff
#000 黑色
#f00 红色
#0f0 绿色
#00f 蓝色
#ccc 灰色 333 666 999

属性:
android:layout_gravity(内对外的请求) 用于控件相对于外层容器的对齐方式
可选值:top, bottom, left(start),right(end),center_vertical垂直居中,center_horizontal水平居中,center水平垂直都居中。

注意:在垂直线性布局里面:top, bottom,center_vertical 无效center 在垂直方向无效。

水平线性布局里面: left(start),right(end),center_horizontal 无效,center在水平方向无效。

android:gravity(外对内的要求)控制视图容器内容物的位置 和本身的水平垂直属性不冲突

可选值:top, bottom, left(start),right(end),center_vertical垂直居中,center_horizontal水平居中,center水平垂直都居中。

layout_gravity:是定义控件位置。
gravity:是定义控件里面的内容的位置。如果定义在布局中,则整体控件按照其定义的位置放置。

权重:android:layout_weight 他是用于分配剩余空间的属性,
注意:
在水平方向设置权重:要把宽度设置为0dp ,
在垂直方向设置权重的时候要把 高度设置为0dp
如果设置wrap_content 会对权重有干扰

相对布局RelativeLayout:

属性主要分为四大类

1、相对于父元素:七个属性:
是否让控件相对于父元素顶部对齐:android:layout_alignParentTop
是否让控件相对于父元素底部对齐:android:layout_alignParentBottom
是否让控件相对于父元素左边对齐:android:layout_alignParentLeft
是否让控件相对于父元素右边对齐:android:layout_alignParentRight
全居中 :centerInParent
水平居中:layout_centerHorizontal
垂直居中:layout_centerVertical

2、相对于兄弟元素  4个
layout_above; 指定在那个控件的上侧
layout_below 指定在那个控件的下侧
android:layout_toLeftOf layout_toStartOf 指定在那个控件的左侧,api版本17推荐使用

android:layout_toRightOf layout_toEndOf 指定在那个控件的右侧,api版本17推荐使用

3、相对于兄弟元素的对齐方式
layout_alignLeft 该控件的左边与指定控件的左边对齐
layout_alignRight 该控件的右边与指定控件的右边对齐
layout_alignTop 该控件的上边沿与指定控件的上边沿对齐
layout_alignBottom 该控件的下边沿与指定控件的下边沿对齐

4、间隔
paddingXXX 内边距 (不指定方向,四周都有)
layout_marginXXX 外边距 (不指定方向,四周都有)

帧布局FrameLayout:

帧布局主要用于碎片fragment的主布局。

以上就是布局的学习内容,我认为难点在于线性布局中的layout_gravity和gravity

android基础学习之布局的更多相关文章

  1. Android 基础:常用布局 介绍 & 使用(附 属性查询)

    Android 基础:常用布局 介绍 & 使用(附 属性查询)   前言 在 Android开发中,绘制UI时常需各种布局 今天,我将全面介绍Android开发中最常用的五大布局 含 Andr ...

  2. Android基础学习第三篇—Intent的用法

    写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...

  3. Android基础学习第二篇—Activity

    写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...

  4. Android基础学习第一篇—Project目录结构

    写在前面的话: 1. 最近在自学Android,也是边看书边写一些Demo,由于知识点越来越多,脑子越来越记不清楚,所以打算写成读书笔记,供以后查看,也算是把自己学到所理解的东西写出来,献丑,如有不对 ...

  5. android开发学习---layout布局、显示单位和如何进行单元测试

    一.五大布局(layout) android中的用五大布局:LinearLayout (线性布局).AbsoluteLayout(绝对布局).RelativeLayout(相对布局).TableLay ...

  6. Android基础学习

    1.specify :指定 2.Nested:嵌套 3.启动模拟器时出现错误信息"Please ensure that adb is correctly located at:XXXXX&q ...

  7. Android基础学习:Android环境搭建

    在3年前,自学过Android的一些基础知识,但是那个时候Linux等其他的知识结构比较薄弱,理解得不是很深刻,后来因项目变动的原因,没有再搞Android相关的东西了.时过境迁,还是因为项目变动,重 ...

  8. android studio学习---实时布局(Live Layout)

    Android Studio中的实时布局功能允许大家在无需将应用程序运行在设备或者模拟器中的前提下,直接预览应用的用户界面.实时布局是一款极为强大的工具,能够帮助开发者节约大量时间.在实时布局的帮助下 ...

  9. android 基础学习笔记2

    1.容器布局 一.线性布局 (LineaLayout) 方向:orientation =vertical / horizontal 重力(对齐) :gravity =bottom/right/left ...

随机推荐

  1. 一种将Region转为Polyline的方法

    在AutoCAD.NET二次开发中,如果要将面域转为Polyline主要有以下几种方式: 1.使用Explode将面域炸成Line和Arc,然后再串起来,此方法可用于AutoCAD2007开始的所有版 ...

  2. TPARAMS和OLEVARIANT相互转换

    所谓的“真3层”有时候是需要客户端上传数据集的TPARAMS到中间件的. 现在,高版本的DATASNAP的远程方法其实也是直接可以传输TPARAMS类型的变量,但是DELPHI7(七爷).六爷它们是不 ...

  3. MVC个人认为的终极分页

    //传入要查询的字段,查询条件(例如根据姓名查看数据的数据筛选),按照什么排序,页码,信息条数 //T:要操作的类型 //Tkey:根据什么类型来排,ID的话返回的是int类型,但是name的话又会返 ...

  4. [转]Torch是什么?

    Torch是一个广泛支持机器学习算法的科学计算框架.易于使用且高效,主要得益于一个简单的和快速的脚本语言LuaJIT,和底层的C / CUDA实现:Torch | Github 核心特征的总结:1. ...

  5. 阿里聚安全攻防挑战赛第三题Android PwnMe解题思路

    阿里聚安全攻防挑战赛第三题Android PwnMe解题思路 大家在聚安全挑战赛正式赛第三题中,遇到android app 远程控制的题目.我们今天带你一探究竟,如何攻破这道题目. 一.题目 购物应用 ...

  6. OC: Block回调的使用demo

    Block 的用法 对于类的继承问题,子类在实现的时候,一般是自下而上,先看看下面的实现没有,没实现就向上找方法去实现. // // main.m #import <Foundation/Fou ...

  7. [转]C/C++中的memset

    http://blog.csdn.net/songuooo/article/details/7819790 1. 需要的头文件 C中为<memory.h> 或 <string.h&g ...

  8. C++ 类的静态成员详细讲解[转]

    在C++中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用.所以在所有对象中都可以共享它.使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节 ...

  9. Hello OSGI --- Apache Felix

    Apache Felix Felix是一个OSGi版本4规范的Apache实现. OSGi是一个基于Java的服务平台规范,其目标是被需要长时间运行.动态更新.对运行环境破坏最小化的系统所使用.有许多 ...

  10. :app:transformResourcesWithMergeJavaResForDebug FAILED

    资源xml有错误,应该排查每一处xml. 如果提示gradle相关错误,需要修改系统级的build.gradle和程序级的build.gradle,比如后者不能缺少:dependencies {    ...