一、常用布局

Android系统中为我们提供的五大布局:LinearLayout(线性布局)、FrameLayout(单帧布局)、AbsoluteLayout(绝对布局)、TablelLayout(表格布局)、RelativeLayout(相对布局)。其中最常用的的是LinearLayout、TablelLayout和RelativeLayout。这些布局都可以嵌套使用。
(1)LinearLayout 线性布局
    线性布局是按照水平或垂直的顺序将子元素(可以是控件或布局)依次按照顺序排列,每一个元素都位于前面一个元素之后。线性布局分为两种:水平方向和垂直方向的布局。分别通过属性android:orientation="vertical" 和 android:orientation="horizontal"来设置。
(2)TableLayout 表格布局
    表格布局,适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成,一个TableRow就表示TableLayout中的每一行,这一行可以由多个子元素组成。实际上TableLayout和TableRow都是LineLayout线性布局的子类。但是TableRow的参数android:orientation属性值固定为horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow实际是一个横向的线性布局,且所以子元素宽度和高度一致。
在TableLayout布局中,一列的宽度由该列中最宽的那个单元格指定,而该表格的宽度由父容器指定。可以为每一列设置以下属性:
     Shrinkable  表示该列的宽度可以进行收缩,以使表格能够适应父容器的大小
     Stretchable 表示该列的宽度可以进行拉伸,以使能够填满表格中的空闲空间
     Collapsed  表示该列会被隐藏
(3)RelativeLayout 相对布局
   RelativeLayout继承于android.widget.ViewGroup,其按照子元素之间的位置关系完成布局的,作为Android系统五大布局中最灵活也是最常用的一种布局方式,非常适合于一些比较复杂的界面设计。
   注意:在引用其他子元素之前,引用的ID必须已经存在,否则将出现异常。
常用的位置属性:
android:layout_toLeftOf          该组件位于引用组件的左方
android:layout_toRightOf         该组件位于引用组件的右方
android:layout_above             该组件位于引用组件的上方
android:layout_below                 该组件位于引用组件的下方
android:layout_alignParentLeft      该组件是否对齐父组件的左端
android:layout_alignParentRight     该组件是否齐其父组件的右端
android:layout_alignParentTop       该组件是否对齐父组件的顶部
android:layout_alignParentBottom      该组件是否对齐父组件的底部
android:layout_centerInParent           该组件是否相对于父组件居中
android:layout_centerHorizontal       该组件是否横向居中
android:layout_centerVertical           该组件是否垂直居中
(4)FrameLayout 框架布局
     将所有的子元素放在整个界面的左上角,后面的子元素直接覆盖前面的子元素,所以用的比较少。
(5)AbsoluteLayou 绝对布局
     绝对布局中将所有的子元素通过设置android:layout_x 和 android:layout_y属性,将子元素的坐标位置固定下来,即坐标(android:layout_x, android:layout_y) ,layout_x用来表示横坐标,layout_y用来表示纵坐标。 屏幕左上角为坐标(0,0),横向往右为正方,纵向往下为正方。实际应用中,这种布局用的比较少,因为Android终端一般机型比较多,各自的屏幕大小。分辨率等可能都不一样,如果用绝对布局,可能导致在有的终端上显示不全等。

二、通用属性

 (1)layout_margin
    用于设置控件边缘相对于父控件的边距
android:layout_marginLeft
android:layout_marginRight
android:layout_marginTop
android:layout_marginBottom
 (2) layout_padding
用于设置控件内容相对于控件边缘的边距
android:layout_paddingLeft
android:layout_paddingRight
android:layout_paddingTop
android:layout_paddingBottom
 (3) layout_width/height
用于设置控件的高度和宽度
wrap_content 内容包裹,表示这个控件的里面文字大小填充
fill_parent 跟随父窗口
match_parent
 (4) gravity
用于设置View组件里面内容的对齐方式
top bottom left   right  center等
 (5) android:layout_gravity  
用于设置Container组件的对齐方式
android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

三、常用属性

RelativeLayout用到的一些重要的属性:
 (1)属性值为true或false
    android:layout_centerHrizontal  水平居中
     android:layout_centerVertical   垂直居中
    android:layout_centerInparent    相对于父元素完全居中
    android:layout_alignParentBottom 贴紧父元素的下边缘
    android:layout_alignParentLeft   贴紧父元素的左边缘
    android:layout_alignParentRight  贴紧父元素的右边缘
    android:layout_alignParentTop    贴紧父元素的上边缘
    android:layout_alignWithParentIfMissing  如果对应的兄弟元素找不到的话就以父元素做参照物
 (2)属性值必须为id的引用名“@id/id-name”
    android:layout_below      在某元素的下方
    android:layout_above      在某元素的的上方
    android:layout_toLeftOf   在某元素的左边
    android:layout_toRightOf  在某元素的右边

android:layout_alignTop   本元素的上边缘和某元素的的上边缘对齐
    android:layout_alignLeft  本元素的左边缘和某元素的的左边缘对齐
    android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐
    android:layout_alignRight  本元素的右边缘和某元素的的右边缘对齐
 (3)属性值为具体的像素值,如30dip,40px
    android:layout_marginBottom              离某元素底边缘的距离
    android:layout_marginLeft                   离某元素左边缘的距离
    android:layout_marginRight                 离某元素右边缘的距离
    android:layout_marginTop                   离某元素上边缘的距离
 (4)EditText的android:hint
设置EditText为空时输入框内的提示信息。
 (5)android:gravity 
android:gravity属性是对该view 内容的限定.比如一个button 上面的text.  你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右
 (6)android:layout_gravity
android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右
 (7)android:layout_alignParentRight
使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。
 (8)android:scaleType
android:scaleType是控制图片如何resized/moved来匹对ImageView的size。ImageView.ScaleType / android:scaleType值的意义区别:
CENTER /center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示
CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长(宽)等于或大于View的长(宽)
CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽
FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示
FIT_END / fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置
FIT_START / fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置
FIT_XY / fitXY  把图片不按比例扩大/缩小到View的大小显示
MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。

** 要注意一点,Drawable文件夹里面的图片命名是不能大写的。

四、其他

LinearLayout中的属性baselineAligned的使用

android布局详解相关推荐

  1. Android - 布局详解之LinearLayout与RelativeLayout

    本篇博文只针对LinearLayout与RelativeLayout 我们在新建一个布局文件时,一般遵循这样的思路:先确定该文件对应的界面中各个布局和控件的位置和大小,然后再来设置各个布局和控件的其他 ...

  2. android rotate 动画,Android RotateAnimation详解

    RotateAnimation旋转坐标系为以旋转点为坐标系(0,0)点.x轴为0度,顺时针方向旋转一定的角度. 1.RotateAnimation(fromDegrees, toDegrees) [默 ...

  3. Android UI详解之布局管理器(一)

    Android UI详解之布局管理器 一.布局管理器 ①顶级父类View ②子类GroupView ③AbsoluteLayout.FrameLayout.LinearLayout.GridLayou ...

  4. Android开发重点难点1:RelativeLayout(相对布局)详解

    前言 啦啦啦~博主又推出了一个新的系列啦~ 之前的Android开发系列主要以完成实验的过程为主,经常会综合许多知识来写,所以难免会有知识点的交杂,给人一种混乱的感觉. 所以博主推出"重点难 ...

  5. android中帧布局效果,布局之FrameLayout(帧布局)详解

    New UI-布局之FrameLayout(帧布局)详解 --转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途!本节引言:FrameLayout(帧布局)可以说是六大布局中最为简单的一 ...

  6. 【转】Android菜单详解——理解android中的Menu--不错

    原文网址:http://www.cnblogs.com/qingblog/archive/2012/06/08/2541709.html 前言 今天看了pro android 3中menu这一章,对A ...

  7. Android菜单详解——理解android中的Menu

    前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至 ...

  8. Android LayoutInflater详解

    Android LayoutInflater详解 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类 似于findViewById().不同点是LayoutInflater是用来 ...

  9. android WebView详解,常见漏洞详解和安全源码(上)

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  由于博客内容长度,这次将分为上下两篇,上篇详解 WebView ...

  10. qt布局嵌套_QDockWidget嵌套布局详解-实现Visual Studio布局

    概述 许多工程软件,如Qt Creator,VS,matlab等,都是使用dock布局窗口,这样用户可以自定义界面,自由组合窗口. Qt的嵌套布局由QDockWidget完成,用Qt Creator拖 ...

最新文章

  1. 半透明遮罩层覆盖整个可视区域
  2. 特殊图像的色彩特征工程:非自然图像的颜色编码
  3. python发声-python3-声音处理
  4. python爬网页数据到 excel 自动化_Selenium2+python自动化之读取Excel数据(xlrd)
  5. 关键字搜索 c语言,c语言-以关键字搜索程序
  6. 决策者根据什么曲线做出决策_如何做出产品设计决策
  7. commons-fileupload、smartUpload和commons-net-ftp
  8. SPOJ Problem 6219:Edit distance
  9. 国外程序猿整理的C++大全
  10. 【clickhouse】clickhouse 表引擎之 Buffer
  11. php mongo 认证,MongoDB 认证机制升级
  12. 如何在Java中将字节数组转换为十六进制字符串?
  13. 二级c语言笔试57,二级C语言笔试真题与答案.doc
  14. PS改变证件照的背景颜色
  15. matlab小波变换,图像处理
  16. mysql时区time_zone和sytem_time_zone
  17. java获取当天剩余时间
  18. 阈值处理(Threshold processing)
  19. 【PAT】A1107 Social Clusters (30分)
  20. 基于51单片机的LCD12864游戏机设计

热门文章

  1. 基于matlab的双闭环直流调速系统,基于Matlab双闭环直流调速系统设计与仿真
  2. PHP后端美化,基于Thinkphp5.5表白墙源码,已美化后端
  3. plsql命令窗口使用
  4. C语言课程设计图形库
  5. JAVA 身份证号码的验证
  6. docker 网络模式之 macvlan模式
  7. 2022-2028全球硬件加密行业调研及趋势分析报告
  8. 【C语言编程】切比雪夫多项式
  9. C语言期末考试复习题(有答案)
  10. 数据分析实战(三) 因子分析模型挖掘CSDN优质博主