布局【ViewGroup】

 
像素单位的变化:是用dip,而不是px,主要用于宽高的设置
在Android中支持的描述大小区域的类型有以下几种。
px(pixels)——像素:不同的设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。
dip(device independent pixels)——设备独立像素:这个和设备硬件有关,一般哦我们为了支持WCGA、HVGA和QVGA推荐使用这个,不依赖于像素。等同于dp。
sp(scaled pixels—best for text size)——带比例的像素。
pt(points)——磅:1pt = 1/72英寸
in(inches)——英寸
mm(millimeters)——毫米
字体大小单位的变化:字体大小的单位要使用sp而不是dip或者px

layout_xxxx和xxxx的区别:layout_xxxx相对父亲,xxxx为自己的孩子或者自己

颜色分为:3位【rgb】、6位【更多颜色】、8位【前两位为透明度,后6位为更多颜色】

静态布局,在资源文件夹res/layout内部,使用xml文件描述。
动态布局,使用java语法构建ViewGroup对象。
  • 每个View必须指定宽高,layout_width、layout_height
    • 宽高控制对象为:android.view.ViewGroup.LayoutParams
    • 宽高具备父宽和父高即,父容器有多高宽,自己就有多高宽。值为:fill_parent
      match_parent
      • 高宽具备覆盖原则,上面的会覆盖下面的。
  • 除了高宽还有附加了一个权重layout_weight,单位为小数或者整数
    • 权重layout_weight计算方案为所有相加然后除自己,就是自己的比例
    • 控制对象为:android.view.ViewGroup.LayoutParams
    • 如果按照比例设置方案,那么高或者宽需要调整为wrap_content
    • 例如:三个线布局,1线20%,2线60%,3线20%
    • 一线80dp,二线自动增长,三线80dp

android:id="@+id/b1"定义唯一标识
 

android:padding=""写在父容器里面,控制子容器边距
android:layout_margin=""写在子容器里面,控制自己与父容器的边距

 
  1. 线形布局【android.widget.LinearLayout】
    1. 横排列android:orientation="horizontal"
    2. 竖排列android:orientation="vertical"
  2. 帧布局【android.widget.FrameLayout】
    1. 从屏幕左上角开始,分层次,下面为最上层
    2. 子View可以使用android:layout_gravity来控制方位,
  3. 相对布局【android.widget.RelativeLayout】
    1. 大多数情况都是子View使用属性对位
    2. android:layout_centerInParent="true"相对父亲垂直水平居中
    3. android:layout_centerHorizontal="true"相对父亲水平居中
    4. android:layout_centerVertical="true"相对父亲垂直居中
    5. android:layout_above="@+id/b1"相对b1上方
    6. android:layout_below="@+id/b1"相对b1下方
    7. android:layout_toLeftOf="@+id/b1"相对b1左方
    8. android:layout_toRightOf="@+id/b1"相对b1右方
    9. android:layout_alignLeft="@+id/b1"相对b1左方对齐
    10. android:layout_alignTop="@+id/b1"相对b1上方对齐
    11. android:layout_alignRight="@+id/b1"相对b1右方对齐
    12. android:layout_alignBottom="@+id/b1"相对b1下方对齐
    13. android:layout_alignParentLeft="true"相对父亲左方对齐
    14. android:layout_alignParentRight="true"相对父亲右方对齐
    15. android:layout_alignParentTop="true"相对父亲垂上方对齐
    16. android:layout_alignParentBottom="true"相对父亲下方对齐
    17. 相对布局最好采取链表的感觉,一个一个的相对下去具有连续性。
    18. 例如
    19. b1相对父容器,b2相对b1,b3相对b2,b4相对b3
  4. 表格布局【android.widget.TableLayout】
    1. android:collapseColumns="0,1,2"隐藏1,2,3列
    2. android:shrinkColumns="0,1,2" 收缩1,2,3列
    3. android:stretchColumns="0,1,2"扩展1,2,3列
  5. 网格布局【android.widget.GridLayout】
    1. 父容器属性
      1. android:rowCount="3"总行数
      2. android:columnCount="4"总列数
    2. 子View的属性
      1. android:layout_gravity="fill"单元格对齐方式以及填充方式
      2. android:layout_columnSpan="2"列合并2个
      3. android:layout_rowSpan="2"行合并2个
      4. android:layout_column="2"指定第二列
      5. android:layout_row="2"指定第二行
      6. GridLayout的不提供支持空间(weight)分配的原则,空间分配界定。在一般情况下,可以配置一个GridLayout多余的空间分布在多个行或列之间的不相同的比例。
      7. Android4.0才支持GridLayout布局,如果需要以前的版本也支持,需要使用android-support-v7扩展包
  6. 绝对布局【android.widget.AbsoluteLayout】
    1. android:layout_x="198dp"坐标x轴
    2. android:layout_y="162dp"坐标y轴

Andriod布局的更多相关文章

  1. Andriod布局之LinearLayout

    LinearLayout是安卓中的常见布局,即线性布局.(提示:在Andriod中要常用alt+/快捷键来补全代码 其中有一个重要的属性android:orientation,它是表示线性布局的方向问 ...

  2. 1.[WP Developer体验Andriod开发]之Andriod布局 VS WinPhone布局

    0.写在前面的话 近来被HTML+CSS的布局折腾的死去活来,眼巴巴的看着CSS3中的flex,grid等更便捷更高效的的布局方式无法在项目中应用,心里那叫一个窝火啊,去你妹的兼容性,,, 最近体验下 ...

  3. 1.[Andriod]之Andriod布局 VS WinPhone布局

    0.写在前面的话 近来被HTML+CSS的布局折腾的死去活来,眼巴巴的看着CSS3中的flex,grid等更便捷更高效的的布局方式无法在项目中应用,心里那叫一个窝火啊,去你妹的兼容性,,, 最近体验下 ...

  4. Andriod中textview垂直水平居中及LinearLayout内组件的垂直布局

    1.textview 垂直水平居中的设置 Android:gravity="center_vertical|center" 2.LinearLayout中设置控件垂直布局,默认的是 ...

  5. Andriod 四大组件,六大布局

    一.四大组件 Android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activit ...

  6. Andriod 自定义控件之创建可以复用的组合控件

    前面已学习了一种自定义控件的实现,是Andriod 自定义控件之音频条,还没学习的同学可以学习下,学习了的同学也要去温习下,一定要自己完全的掌握了,再继续学习,贪多嚼不烂可不是好的学习方法,我们争取学 ...

  7. Android一些关于分辨率和布局的设置

      1.Android手机屏幕大小不一,有480x320, 640x360, 800x480.怎样才能让App自动适应不同的屏幕呢? drawable- hdpi.drawable- mdpi.dra ...

  8. Android软键盘弹出时把布局顶上去的解决方法

    原文: 解决Andriod软键盘出现把原来的布局给顶上去的方法(转) 链接:http://blog.sina.com.cn/s/blog_9564cb6e0101g2eb.html 决方法,在main ...

  9. Android布局大全

    Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面. 所有的布局方式都可以归类为ViewGroup的 ...

随机推荐

  1. linxu信号种类

    使用kill -l 命令,可看到linux支持的信号列表: 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGB ...

  2. 笔记-scrapy-去重

    笔记-scrapy-去重 1.      scrapy 去重 scrapy 版本:1.5.0 第一步是要找到去重的代码,scrapy在请求入列前去重,具体源码在scheduler.py: def en ...

  3. 1 web应用

    web应用 Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端/服 ...

  4. linux 检测进程是否存在

    1. 直接遍历/proc目录 int find_pid_by_name( char* pidname, pid_t *pidlist) { #define READ_BUF_SIZE 256 DIR ...

  5. 什么是App加壳,以及App加壳的利与弊

    非著名程序员涩郎 非著名程序员,字耿左直右,号涩郎,爱搞机,爱编程,是爬行在移动互联网中的一名码匠!个人微信号:loonggg,微博:涩郎,专注于移动互联网的开发和研究,本号致力于分享IT技术和程序猿 ...

  6. DOS程序员手册(十一)

    560页 版本5中新增加的子功能05h支持程序截获MS-DOS EXEC调用,并实 现自我装载.该子功能能实现内存的修补,如设置装载程序能接收的版本号 (通过SETVER设置的版本号)以及实现对装载程 ...

  7. php导出数据为CSV文件DEMO

    代码示例: private function _download_send_headers($filename) { // disable caching $now = gmdate("D, ...

  8. Python 3基础教程14-在文件尾部更新内容

    本文介绍在一个已经存在的文件尾部添加内容,还是用到write方法. 这里exampleFile.txt是前面文件创建的文件,里面有两行文字.

  9. 【转载】Unity3D研究院之IOS触摸屏手势控制镜头旋转与缩放

    前几篇文章介绍了很多Unity3D引擎自身的一些问题, 今天我们在回到IOS设备上讨论一些触摸屏幕手势,本章的目标是通过触摸iPhone屏幕手势 实现模型左右的旋转,与模型的缩放. 大家想一想模型的旋 ...

  10. Android 图片文字单位 px、dp、sp区别

    文章来源:http://www.cnblogs.com/bjzhanghao/archive/2012/11/06/2757300.html px:像素,一个像素点,1px代表屏幕上一个物理的像素点: ...