当前位置:   article > 正文

【Android】安卓六大布局基本了解_android六大布局的特点

android六大布局的特点

Android六种布局:

  • 1. 线性布局(LinearLayout)              按照垂直或者水平方向布局的组件

  • 2. 帧布局(FrameLayout)                     组件从屏幕左上方布局组件

  • 3. 表格布局(TableLayout)                按照行列方式布局组件

  • 4. 绝对布局(AbsoluteLayout)        按照绝对坐标来布局组件

  • 5. 相对布局(RelativeLayout)          相对其它组件的布局方式

  • 6. 约束布局 (ConstraintLayout)    按照约束布局组件

  • 注: wrap_content: 表示该组件的大小与内容自适应

  •      match_parent:  表示该组件的大小与父组件大小一致


1. 线性布局(LinearLayout
线性布局,有两种排法:
    从左到右
                        android:orientation=”horizontal”
    从上到下
                         android:orientation=”vertical”

 


  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical" >
  6. <!--vertical: 垂直的方式排列-->
  7. <Button
  8. android:id="@+id/button"
  9. android:layout_width="match_parent"
  10. android:layout_height="wrap_content"
  11. android:text="Button" />
  12. <Button
  13. android:id="@+id/button2"
  14. android:layout_width="match_parent"
  15. android:layout_height="wrap_content"
  16. android:text="Button" />
  17. <Button
  18. android:id="@+id/button3"
  19. android:layout_width="match_parent"
  20. android:layout_height="wrap_content"
  21. android:text="Button" />
  22. <Button
  23. android:id="@+id/button4"
  24. android:layout_width="match_parent"
  25. android:layout_height="wrap_content"
  26. android:text="Button" />
  27. <Button
  28. android:id="@+id/button6"
  29. android:layout_width="match_parent"
  30. android:layout_height="wrap_content"
  31. android:text="Button" />
  32. <Button
  33. android:id="@+id/button7"
  34. android:layout_width="match_parent"
  35. android:layout_height="wrap_content"
  36. android:text="Button" />
  37. <LinearLayout
  38. android:layout_width="match_parent"
  39. android:layout_height="match_parent"
  40. android:orientation="horizontal">
  41. <!--纵向水平布局-->
  42. <Button
  43. android:id="@+id/button12"
  44. android:layout_width="wrap_content"
  45. android:layout_height="wrap_content"
  46. android:layout_weight="1"
  47. android:text="Button" />
  48. <Button
  49. android:id="@+id/button15"
  50. android:layout_width="wrap_content"
  51. android:layout_height="wrap_content"
  52. android:layout_weight="1"
  53. android:text="Button" />
  54. <Button
  55. android:id="@+id/button13"
  56. android:layout_width="wrap_content"
  57. android:layout_height="wrap_content"
  58. android:layout_weight="1"
  59. android:text="Button" />
  60. <Button
  61. android:id="@+id/button14"
  62. android:layout_width="wrap_content"
  63. android:layout_height="wrap_content"
  64. android:layout_weight="1"
  65. android:text="Button" />
  66. <Button
  67. android:id="@+id/button11"
  68. android:layout_width="wrap_content"
  69. android:layout_height="wrap_content"
  70. android:layout_weight="1"
  71. android:text="Button" />
  72. </LinearLayout>
  73. </LinearLayout>

 以上是由一个全局的 垂直(vertical)线性布局 以及一个局部的 横向(horizontal)线性布局 组成

 


2. 帧布局(FrameLayout)  

           帧布局会按照添加顺序层叠在一起,默认层叠在左上角位置. 

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent">
  6. <ImageButton
  7. android:id="@+id/imageButton"
  8. android:layout_width="320dp"
  9. android:layout_height="302dp"
  10. app:srcCompat="@android:color/background_dark" />
  11. <ImageButton
  12. android:id="@+id/imageButton2"
  13. android:layout_width="267dp"
  14. android:layout_height="255dp"
  15. app:srcCompat="@android:color/holo_red_dark" />
  16. <ImageButton
  17. android:id="@+id/imageButton3"
  18. android:layout_width="211dp"
  19. android:layout_height="198dp"
  20. app:srcCompat="@android:color/holo_blue_dark" />
  21. <ImageButton
  22. android:id="@+id/imageButton4"
  23. android:layout_width="156dp"
  24. android:layout_height="138dp"
  25. app:srcCompat="@android:color/holo_green_dark" />
  26. </FrameLayout>

 


3. 表格布局(TableLayout

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="wrap_content">
  5. <Button
  6. android:layout_weight="wrap_content"
  7. android:layout_height="wrap_content"
  8. android:text="站表格的一行"/>
  9. <TableRow>
  10. <!--Tablerow 表示单独行在,在单独行内有以下对象-->
  11. <Button
  12. android:layout_weight="wrap_content"
  13. android:layout_height="wrap_content"
  14. android:text="对象1"/>
  15. <Button
  16. android:layout_weight="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:text="对象2"/>
  19. <Button
  20. android:layout_weight="wrap_content"
  21. android:layout_height="wrap_content"
  22. android:text="对象3"/>
  23. </TableRow>
  24. </TableLayout>

 

 TableLayout常用的属性:
        android:layout_column        表示当前控件在第几列
        android:layout_span            表示合并单元格个数


4. 绝对布局(AbsoluteLayout

 

注: 难以实现多分辨率适配,不建议使用,在非定制需求项目,无需了解使用。

原因:需要对应运行的系统上的设备的对应分辨率来设置 布局的大小以及控件的坐标位置


5. 相对布局(RelativeLayout

有三种不同表示是方式的属性

属性值是true或false

    android:layout_centerHrizontal          水平居中
    android:layout_centerVertical             垂直居中
    android:layout_centerInparent            相对于父元素完全居中。
    android:layout_alignParentBottom     位于父元素的下边缘
    android:layout_alignParentTop           位于父元素的上边缘
    android:layout_alignParentLeft           位于父元素的左边缘
    android:layout_alignParentRight        位于父元素的右边缘

属性值是”@id/*“

    android:layout_below            在某元素的下方
    android:layout_above            在某元素的上方
    andorid:layout_toRightOf      在某元素的右方
    android:layout_toLeftOf         在某元素的左方
    android:layout_alignBottom 和某元素下方对齐
    android:layout_alignTop       和某元素上方对齐
    android:layout_alignRight    和某元素右方对齐
    android:layout_alignLeft       和某元素左方对齐

属性值是数值  

    android:layout_marginLeft         离某元素左边缘的距离
    android:layout_marginRight      离某元素右边缘的距离
    android:layout_marginTop         离某元素上边缘的距离
    android:layout_marginBottom   离某元素下边缘的距离
以上三种,最常用的是第一第二种.

  • 如果没有定义左右,那么默认在左边,如果没有定义上下,默认在上边。
  • 相同位置,新定义的元素会覆盖旧的元素

 

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:tools="http://schemas.android.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent">
  6. <TextView
  7. android:id="@+id/textView3"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:text="1"
  11. android:textAllCaps="false"
  12. android:textColor="#0EBDAC"
  13. android:textSize="64sp"
  14. android:textStyle="bold"/>
  15. <TextView
  16. android:id="@+id/textView4"
  17. android:layout_width="wrap_content"
  18. android:layout_height="wrap_content"
  19. android:layout_alignParentRight="true"
  20. android:text="2"
  21. android:textColor="#2196F3"
  22. android:textSize="64" />
  23. <TextView
  24. android:id="@+id/textView5"
  25. android:layout_width="wrap_content"
  26. android:layout_height="wrap_content"
  27. android:layout_alignParentBottom="true"
  28. android:text="3"
  29. android:textColor="#E91E63"
  30. android:textSize="64"
  31. tools:text="3" />
  32. <TextView
  33. android:id="@+id/textView6"
  34. android:layout_width="wrap_content"
  35. android:layout_height="wrap_content"
  36. android:layout_alignParentBottom="true"
  37. android:layout_alignParentRight="true"
  38. android:text="4"
  39. android:textColor="#FFEB3B"
  40. android:textSize="64"/>
  41. <TextView
  42. android:id="@+id/textView7"
  43. android:layout_width="wrap_content"
  44. android:layout_height="wrap_content"
  45. android:layout_centerInParent="true"
  46. android:text="5"
  47. android:textColor="#673AB7"
  48. android:textSize="64" />
  49. <TextView
  50. android:id="@+id/textView8"
  51. android:layout_width="wrap_content"
  52. android:layout_height="wrap_content"
  53. android:layout_toRightOf="@+id/textView7"
  54. android:layout_alignBottom="@+id/textView7"
  55. android:text="6"
  56. android:textColor="#3F51B5"
  57. android:textSize="64" />
  58. <TextView
  59. android:id="@+id/textView9"
  60. android:layout_width="wrap_content"
  61. android:layout_height="wrap_content"
  62. android:layout_toLeftOf="@+id/textView7"
  63. android:layout_alignTop="@+id/textView7"
  64. android:text="7"
  65. android:textColor="#FA030303"
  66. android:textSize="64" />
  67. </RelativeLayout>

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/270281
推荐阅读
相关标签
  

闽ICP备14008679号