飞道的博客

Android 布局简介

400人阅读  评论(0)

 

目录

 序 

正文

FrameLayout(帧布局)

简介

属性

栗子

LinearLayout(线性布局)

简介

属性

栗子

RelativeLayout(相对布局)

简介

属性

栗子

TableLayout(表格布局)

简介

属性

 栗子

绝对布局(帧布局)

简介

ConstraintLayout(约束布局)

简介

demo地址

 


  

       近来很多人问了我关于Android布局相关的问题,这里我专门写一篇关于Android布局的介绍,布局的学习非常重要,只有学会布局,才能开始Android新篇章,毕竟画出一个精美的界面,布局是首要的。

正文

   关于布局最基本的有6种,其中5个是传统布局

  • FrameLayout(帧布局)
  • LinearLayout(线性布局)
  • RelativeLayout(相对布局)
  • TableLayout(表格布局)
  • AbsoluteLayout(绝对布局)

,还有1个是2016年新出的布局ConstraintLayout(约束布局)

接下来我会讲解这6个布局,最后通过用4种布局(除了帧布局,绝对布局)各写一遍计算器demo来加深你们对,布局对了解。  

FrameLayout(帧布局)

简介

  它是一个简单的布局方式,没有任何定位方式,它的初始坐标是在左上角,其里面的布局写在最后的布局,是显示在最上面的。它是以叠加的方式显示。

属性

 android:foreground     //设置帧布局的前景图像

android:foregroundGravity     //设置帧布局前景图像显示的位置

栗子


  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.      android:orientation= "horizontal"
  4.      android:layout_width= "match_parent"
  5.      android:layout_height= "match_parent"
  6.      android:foregroundGravity= "center|right"
  7.      android:foreground= "@mipmap/ces">
  8. <!--
  9.    表示图片的位置中间的右边
  10.    android:foregroundGravity="center|right"
  11.    表示图片
  12.     android:foreground="@mipmap/ces"
  13.     下面的三个控件,表明叠加的方式显示
  14. -->
  15.      <TextView
  16.          android:layout_width= "300dp"
  17.          android:layout_height= "500dp"
  18.          android:background= "#B22222"
  19.          android:text= "1"/>
  20.      <TextView
  21.          android:layout_width= "200dp"
  22.          android:layout_height= "400dp"
  23.          android:background= "#FFD700"
  24.          android:text= "2"/>
  25.      <TextView
  26.          android:layout_width= "100dp"
  27.          android:layout_height= "300dp"
  28.          android:background= "#0000FF"
  29.          android:text= "3"/>
  30. </FrameLayout>

 

LinearLayout(线性布局)

简介

  它是一种线性的布局方式,分为垂直布局和水平布局。

属性

android:orientation     //用于控制线性布局的方向。其值有horizontal(水平方向)和vertical(垂直方向)
android:gravity  //是指相对于控件内的元素对齐方式。
android:layout_gravity //是指相对于父控件的对齐方式。
gravity和layout_gravity的属性是一样的。只是他们的相对控件的对齐方式不同而已。

其属性有

center_horizontal 子控件水平方向居中
center_vertical子控件竖直方向居中

center 子控件竖直方向和水平方向居中

Left(start) 子控件左对齐(一般用left,代表左对齐,start可能会报红,但是不影响运行)

Right(end) 子控件右对齐(一般用right,代表左对齐,end可能会报红,但是不影响运行)

top 子控件顶部对齐

bottom 子控件底部对齐    

android:layout_weight  //权重,分割剩余的控件
android:weightSum    //分割总空间,一般配合layout_weight使用,单独使用无作用

栗子

  1. android:orientation 

  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.      android:orientation= "vertical"
  4.      android:layout_width= "match_parent"
  5.      android:layout_height= "match_parent">
  6.      <TextView
  7.          android:layout_width= "wrap_content"
  8.          android:layout_height= "wrap_content"
  9.          android:text= "水平布局"
  10.          android:textSize= "40sp"/>
  11. <!--    下面是水平布局-->
  12.      <LinearLayout
  13.          android:layout_width= "wrap_content"
  14.          android:layout_height= "wrap_content"
  15.          android:orientation= "horizontal">
  16.          <TextView
  17.              android:layout_width= "wrap_content"
  18.              android:layout_height= "wrap_content"
  19.              android:text= "文字1"
  20.              android:textSize= "40sp"/>
  21.          <TextView
  22.              android:layout_width= "wrap_content"
  23.              android:layout_height= "wrap_content"
  24.              android:text= "文字2"
  25.              android:textSize= "40sp"/>
  26.      </LinearLayout>
  27.     <TextView
  28.      android:layout_width= "wrap_content"
  29.      android:layout_height= "wrap_content"
  30.      android:text= "垂直布局"
  31.      android:textSize= "40sp"
  32.      android:layout_marginTop= "40dp"/>
  33.      <!--    下面是水平布局-->
  34.      <LinearLayout
  35.          android:layout_width= "wrap_content"
  36.          android:layout_height= "wrap_content"
  37.          android:orientation= "vertical" >
  38.          <TextView
  39.              android:layout_width= "wrap_content"
  40.              android:layout_height= "wrap_content"
  41.              android:text= "文字1"
  42.              android:textSize= "40sp"/>
  43.          <TextView
  44.              android:layout_width= "wrap_content"
  45.              android:layout_height= "wrap_content"
  46.              android:text= "文字2"
  47.              android:textSize= "40sp"/>
  48.      </LinearLayout>
  49. </LinearLayout>

  2. gravity和layout_gravity


  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation= "vertical"
  4. android:layout_width= "match_parent"
  5. android:layout_height= "match_parent">
  6. <!-- 加上背景颜色更能区别gravity和layout_gravity的区别
  7. gravity是相对于其控件本身的对齐方式
  8. layout_gravity是相对于父控件的对齐方式 -->
  9. <TextView
  10. android:layout_width= "200dp"
  11. android:layout_height= "400dp"
  12. android:text= "文字"
  13. android:background= "#00bbcc"
  14. android:textSize= "40sp"
  15. android:gravity= "center"
  16. android:layout_gravity= "right"/>
  17. </LinearLayout>

  3 android:weightSum  和 android:layout_weight


  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation= "vertical"
  4. android:layout_width= "match_parent"
  5. android:layout_height= "match_parent" >
  6. <TextView
  7. android:layout_width= "wrap_content"
  8. android:layout_height= "wrap_content"
  9. android:text= "演示1"
  10. android:textSize= "40sp"/>
  11. <!-- 一般weightSum为预留总空间,比如以下weightSum=3,
  12. 下面的就会分割成3块。
  13. 若使用layout_weight,
  14. 一般当LinearLayout布局为horizontal时,其子控件的layout_width为0,
  15. 当LinearLayout布局为vertical时,其子控件的layout_height为0,-->
  16. <LinearLayout
  17. android:orientation= "horizontal"
  18. android:layout_width= "match_parent"
  19. android:layout_height= "wrap_content"
  20. android:weightSum= "3">
  21. <TextView
  22. android:layout_width= "0dp"
  23. android:layout_weight= "1"
  24. android:layout_height= "200dp"
  25. android:text= "文字1"
  26. android:textSize= "40sp"
  27. android:background= "#bb00cc" />
  28. <TextView
  29. android:layout_width= "0dp"
  30. android:layout_weight= "1"
  31. android:layout_height= "200dp"
  32. android:text= "文字1"
  33. android:textSize= "40sp"
  34. android:background= "#bbcc00"/>
  35. </LinearLayout>
  36. <TextView
  37. android:layout_width= "wrap_content"
  38. android:layout_height= "wrap_content"
  39. android:text= "演示2"
  40. android:textSize= "40sp"/>
  41. <!-- 没有weightSum的时候,他会根据layout_weight的总和和分割-->
  42. <LinearLayout
  43. android:layout_width= "match_parent"
  44. android:layout_height= "wrap_content"
  45. android:orientation= "horizontal">
  46. <TextView
  47. android:layout_width= "0dp"
  48. android:layout_weight= "1"
  49. android:layout_height= "200dp"
  50. android:text= "文字1"
  51. android:textSize= "40sp"
  52. android:background= "#bb00cc" />
  53. <TextView
  54. android:layout_width= "0dp"
  55. android:layout_weight= "1"
  56. android:layout_height= "200dp"
  57. android:text= "文字1"
  58. android:textSize= "40sp"
  59. android:background= "#bbcc00"/>
  60. </LinearLayout>
  61. </LinearLayout>

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 贴紧父元素的上边缘  

  2.相对于同级控件的

    android:layout_below 在某元素的下方

    android:layout_above 在某元素的的上方

    android:layout_toLeftOf 在某元素的左边

    android:layout_toRightOf 在某元素的右边

    android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐

    android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐

    android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐    

    android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

 

栗子

1.相对于父控件的


  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout
  3.      xmlns:android= "http://schemas.android.com/apk/res/android"
  4.      android:orientation= "vertical"
  5.      android:layout_width= "match_parent"
  6.      android:layout_height= "match_parent"
  7.      android:background= "#00bbcc">
  8.      <TextView
  9.          android:layout_width= "wrap_content"
  10.          android:layout_height= "wrap_content"
  11.          android:background= "#ffffff"
  12.          android:text= "贴左边缘"
  13.          android:textSize= "25sp"
  14.          android:layout_alignParentLeft= "true"/>
  15.      <TextView
  16.          android:layout_width= "wrap_content"
  17.          android:layout_height= "wrap_content"
  18.          android:background= "#ffffff"
  19.          android:text= "贴右边缘"
  20.          android:textSize= "25sp"
  21.          android:layout_alignParentRight= "true"/>
  22.      <TextView
  23.          android:layout_width= "wrap_content"
  24.          android:layout_height= "wrap_content"
  25.          android:background= "#ffffff"
  26.          android:text= "贴底部"
  27.          android:textSize= "25sp"
  28.          android:layout_alignParentBottom= "true"/>
  29. <!--    默认rel和Frame是一样的初始左边为左上,所以顶部将贴左边缘掩盖-->
  30.      <TextView
  31.          android:layout_width= "wrap_content"
  32.          android:layout_height= "wrap_content"
  33.          android:background= "#ffffff"
  34.          android:text= "贴顶部"
  35.          android:textSize= "30sp"
  36.          android:layout_alignParentTop= "true"/>
  37.      <!--    联合使用-->
  38.      <TextView
  39.          android:layout_width= "wrap_content"
  40.          android:layout_height= "wrap_content"
  41.          android:background= "#ffffff"
  42.          android:text= "底部+贴右边缘"
  43.          android:textSize= "30sp"
  44.          android:layout_alignParentBottom= "true"
  45.          android:layout_alignParentRight= "true"/>
  46.      <TextView
  47.          android:layout_width= "wrap_content"
  48.          android:layout_height= "wrap_content"
  49.          android:background= "#ffffff"
  50.          android:text= "垂直居中"
  51.          android:textSize= "30sp"
  52.          android:layout_centerVertical= "true" />
  53.      <TextView
  54.          android:layout_width= "wrap_content"
  55.          android:layout_height= "wrap_content"
  56.          android:background= "#ffffff"
  57.          android:text= "水平居中"
  58.          android:textSize= "30sp"
  59.          android:layout_centerHorizontal= "true" />
  60.      <TextView
  61.          android:layout_width= "wrap_content"
  62.          android:layout_height= "wrap_content"
  63.          android:background= "#ffffff"
  64.          android:text= "居中"
  65.          android:textSize= "30sp"
  66.          android:layout_centerInParent= "true"/>
  67. </RelativeLayout>

 

2.相对于同级控件的


  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.      android:orientation= "vertical"
  4.      android:layout_width= "match_parent"
  5.      android:layout_height= "match_parent">
  6. <!--   相对同级定位,需要先设置同级id(相对于给它一个名字) -->
  7.      <TextView
  8.          android:id= "@+id/tv1"
  9.          android:layout_width= "wrap_content"
  10.          android:layout_height= "wrap_content"
  11.          android:text= "文字1"
  12.          android:textSize= "40sp"
  13.          android:background= "#bbcc00"
  14.          android:layout_centerInParent= "true"/>
  15.      <TextView
  16.          android:layout_width= "wrap_content"
  17.          android:layout_height= "wrap_content"
  18.          android:text= "顶部相同"
  19.          android:textColor= "#ffffff"
  20.          android:layout_alignTop= "@+id/tv1"
  21.          android:textSize= "29sp"
  22.          android:background= "#bb00cc"/>
  23.      <TextView
  24.          android:layout_width= "wrap_content"
  25.          android:layout_height= "wrap_content"
  26.          android:text= "在右边"
  27.          android:textColor= "#ffffff"
  28.          android:layout_toRightOf= "@+id/tv1"
  29.          android:textSize= "29sp"
  30.          android:background= "#bb00cc"/>
  31. <!--    这个同样可以联合使用-->
  32.      <TextView
  33.          android:layout_width= "wrap_content"
  34.          android:layout_height= "wrap_content"
  35.          android:text= "在右边,并且顶部相同"
  36.          android:textColor= "#ffffff"
  37.          android:layout_toRightOf= "@+id/tv1"
  38.          android:layout_alignTop= "@+id/tv1"
  39.          android:textSize= "29sp"
  40.          android:background= "#bb00cc"/>
  41. </RelativeLayout>

TableLayout(表格布局)

简介

  它是一种多行多列的表格形式,一行由多个单元格组成。嗯。可以这么理解。

属性

TableRow  //为一行的容器,如果你想设置多行

android:collapseColumns    //设置隐藏列数

android:shrinkColumns      //收缩指定列,让一行正常显示 

android:stretchColumns    //设置可拉伸的列数,将其扩展到最大

android:layout_column   //跳过某个单元格

android:layout_span      //合并单元格,需要2行才行

 

 栗子

 


  
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.      android:orientation= "vertical"
  4.      android:layout_width= "match_parent"
  5.      android:layout_height= "match_parent">
  6.      <TextView
  7.          android:layout_width= "wrap_content"
  8.          android:layout_height= "wrap_content"
  9.          android:text= "演示1,隐藏"
  10.          android:textSize= "30sp"
  11.         />
  12. <!--    android:collapseColumns可以隐藏多列,隐藏1,2列
  13.        -->
  14.     <TableLayout
  15.         android:layout_width= "match_parent"
  16.         android:layout_height= "wrap_content"
  17.         android:collapseColumns= "0,1" >
  18.         <TableRow
  19.             android:layout_width= "match_parent"
  20.             android:layout_height= "wrap_content" >
  21.             <TextView
  22.                 android:layout_width= "wrap_content"
  23.                 android:layout_height= "wrap_content"
  24.                 android:text= "文字1"
  25.                 android:textSize= "30sp"
  26.                 android:textColor= "#ffffff"
  27.                 android:background= "#00bbcc"
  28.                />
  29.             <TextView
  30.                 android:layout_width= "wrap_content"
  31.                 android:layout_height= "wrap_content"
  32.                 android:text= "文字2"
  33.                 android:textSize= "30sp"
  34.                 android:textColor= "#ffffff"
  35.                 android:background= "#bb00cc"/>
  36.             <TextView
  37.                 android:layout_width= "wrap_content"
  38.                 android:layout_height= "wrap_content"
  39.                 android:text= "文字3"
  40.                 android:textSize= "30sp"
  41.                 android:textColor= "#ffffff"
  42.                 android:background= "#bbcc00"/>
  43.         </TableRow>
  44.         <TableRow
  45.             android:layout_width= "match_parent"
  46.             android:layout_height= "wrap_content" >
  47.             <TextView
  48.                 android:layout_width= "wrap_content"
  49.                 android:layout_height= "wrap_content"
  50.                 android:text= "文字4"
  51.                 android:textSize= "30sp"
  52.                 android:textColor= "#ffffff"
  53.                 android:background= "#00bbcc"
  54.                />
  55.             <TextView
  56.                 android:layout_width= "wrap_content"
  57.                 android:layout_height= "wrap_content"
  58.                 android:text= "文字5"
  59.                 android:textSize= "30sp"
  60.                 android:textColor= "#ffffff"
  61.                 android:background= "#bb00cc"/>
  62.             <TextView
  63.                 android:layout_width= "wrap_content"
  64.                 android:layout_height= "wrap_content"
  65.                 android:text= "文字6"
  66.                 android:textSize= "30sp"
  67.                 android:textColor= "#ffffff"
  68.                 android:background= "#bbcc00"/>
  69.         </TableRow>
  70.     </TableLayout>
  71.      <TextView
  72.          android:layout_width= "wrap_content"
  73.          android:layout_height= "wrap_content"
  74.          android:text= "演示2,扩展"
  75.          android:textSize= "30sp"
  76.         />
  77.      <!--    android:stretchColumns 可拉伸的列数,将其扩展到最大
  78.        -->
  79.      <TableLayout
  80.          android:layout_width= "match_parent"
  81.          android:layout_height= "wrap_content"
  82.          android:stretchColumns= "1">
  83.          <TableRow
  84.              android:layout_width= "wrap_content"
  85.              android:layout_height= "wrap_content">
  86.              <TextView
  87.                  android:layout_width= "wrap_content"
  88.                  android:layout_height= "wrap_content"
  89.                  android:text= "文字1"
  90.                  android:textSize= "30sp"
  91.                  android:textColor= "#ffffff"
  92.                  android:background= "#00bbcc"
  93.                 />
  94.              <TextView
  95.                  android:layout_width= "wrap_content"
  96.                  android:layout_height= "wrap_content"
  97.                  android:text= "文字2"
  98.                  android:textSize= "30sp"
  99.                  android:textColor= "#ffffff"
  100.                  android:background= "#bb00cc"/>
  101.              <TextView
  102.                  android:layout_width= "wrap_content"
  103.                  android:layout_height= "wrap_content"
  104.                  android:text= "文字3"
  105.                  android:textSize= "30sp"
  106.                  android:textColor= "#ffffff"
  107.                  android:background= "#bbcc00"/>
  108.          </TableRow>
  109.          <TableRow
  110.              android:layout_width= "wrap_content"
  111.              android:layout_height= "wrap_content" >
  112.              <TextView
  113.                  android:layout_width= "wrap_content"
  114.                  android:layout_height= "wrap_content"
  115.                  android:text= "文字4"
  116.                  android:textSize= "30sp"
  117.                  android:textColor= "#ffffff"
  118.                  android:background= "#00bbcc"
  119.                 />
  120.              <TextView
  121.                  android:layout_width= "wrap_content"
  122.                  android:layout_height= "wrap_content"
  123.                  android:text= "文字5"
  124.                  android:textSize= "30sp"
  125.                  android:textColor= "#ffffff"
  126.                  android:background= "#bb00cc"/>
  127.              <TextView
  128.                  android:layout_width= "wrap_content"
  129.                  android:layout_height= "wrap_content"
  130.                  android:text= "文字6"
  131.                  android:textSize= "30sp"
  132.                  android:textColor= "#ffffff"
  133.                  android:background= "#bbcc00"/>
  134.          </TableRow>
  135.      </TableLayout>
  136.      <TextView
  137.          android:layout_width= "wrap_content"
  138.          android:layout_height= "wrap_content"
  139.          android:text= "演示3,收缩"
  140.          android:textSize= "30sp"
  141.         />
  142.      <!--    android:shrinkColumns 收缩指定列,让一行正常显示
  143.           -->
  144.      <TableLayout
  145.          android:layout_width= "match_parent"
  146.          android:layout_height= "wrap_content"
  147.          android:shrinkColumns= "1">
  148.          <TableRow
  149.              android:layout_width= "match_parent"
  150.              android:layout_height= "wrap_content">
  151.              <TextView
  152.                  android:layout_width= "match_parent"
  153.                  android:layout_height= "wrap_content"
  154.                  android:text= "文字1"
  155.                  android:textSize= "30sp"
  156.                  android:textColor= "#ffffff"
  157.                  android:background= "#00bbcc"
  158.                 />
  159.              <TextView
  160.                  android:layout_width= "wrap_content"
  161.                  android:layout_height= "wrap_content"
  162.                  android:text= "文字2"
  163.                  android:textSize= "30sp"
  164.                  android:textColor= "#ffffff"
  165.                  android:background= "#bb00cc"
  166.               />
  167.              <TextView
  168.                  android:layout_width= "wrap_content"
  169.                  android:layout_height= "wrap_content"
  170.                  android:text= "文字3"
  171.                  android:textSize= "30sp"
  172.                  android:textColor= "#ffffff"
  173.                  android:background= "#bbcc00"/>
  174.              <TextView
  175.                  android:layout_width= "wrap_content"
  176.                  android:layout_height= "wrap_content"
  177.                  android:text= "文字4"
  178.                  android:textSize= "30sp"
  179.                  android:textColor= "#ffffff"
  180.                  android:background= "#bb00cc"/>
  181.              <TextView
  182.                  android:layout_width= "wrap_content"
  183.                  android:layout_height= "wrap_content"
  184.                  android:text= "文字5"
  185.                  android:textSize= "30sp"
  186.                  android:textColor= "#ffffff"
  187.                  android:background= "#00bbcc"/>
  188.              <TextView
  189.                  android:layout_width= "wrap_content"
  190.                  android:layout_height= "wrap_content"
  191.                  android:text= "文字6"
  192.                  android:textSize= "30sp"
  193.                  android:textColor= "#ffffff"
  194.                  android:background= "#bb00cc"/>
  195.          </TableRow>
  196.      </TableLayout>
  197.      <TextView
  198.          android:layout_width= "wrap_content"
  199.          android:layout_height= "wrap_content"
  200.          android:text= "演示4,合并,跳过"
  201.          android:textSize= "30sp"
  202.         />
  203.      <TableLayout
  204.          android:layout_width= "match_parent"
  205.          android:layout_height= "100dp" >
  206.          <TableRow
  207.          android:layout_width= "match_parent"
  208.          android:layout_height= "wrap_content" >
  209.          <TextView
  210.              android:layout_width= "wrap_content"
  211.              android:layout_height= "wrap_content"
  212.              android:text= "文字1"
  213.              android:textSize= "30sp"
  214.              android:textColor= "#ffffff"
  215.              android:background= "#00bbcc"
  216.              android:layout_span= "2"/>
  217. <!--            跳过某一列-->
  218.          <TextView
  219.              android:layout_width= "wrap_content"
  220.              android:layout_height= "wrap_content"
  221.              android:text= "文字2"
  222.              android:textSize= "30sp"
  223.              android:textColor= "#ffffff"
  224.              android:background= "#bb00cc"
  225.              android:layout_column= "3"/>
  226.          <TextView
  227.              android:layout_width= "wrap_content"
  228.              android:layout_height= "wrap_content"
  229.              android:text= "文字3"
  230.              android:textSize= "30sp"
  231.              android:textColor= "#ffffff"
  232.              android:background= "#bbcc00"/>
  233.          <TextView
  234.              android:layout_width= "wrap_content"
  235.              android:layout_height= "wrap_content"
  236.              android:text= "文字4"
  237.              android:textSize= "30sp"
  238.              android:textColor= "#ffffff"
  239.              android:background= "#bb00cc"/>
  240.      </TableRow>
  241.          <TableRow
  242.              android:layout_width= "match_parent"
  243.              android:layout_height= "wrap_content">
  244.              <TextView
  245.                  android:layout_width= "wrap_content"
  246.                  android:layout_height= "wrap_content"
  247.                  android:text= "文字1"
  248.                  android:textSize= "30sp"
  249.                  android:textColor= "#ffffff"
  250.                  android:background= "#00bbcc"/>
  251.              <TextView
  252.                  android:layout_width= "wrap_content"
  253.                  android:layout_height= "wrap_content"
  254.                  android:text= "文字2"
  255.                  android:textSize= "30sp"
  256.                  android:textColor= "#ffffff"
  257.                  android:background= "#bb00cc"/>
  258.              <TextView
  259.                  android:layout_width= "wrap_content"
  260.                  android:layout_height= "wrap_content"
  261.                  android:text= "文字3"
  262.                  android:textSize= "30sp"
  263.                  android:textColor= "#ffffff"
  264.                  android:background= "#bbcc00"/>
  265.              <TextView
  266.                  android:layout_width= "wrap_content"
  267.                  android:layout_height= "wrap_content"
  268.                  android:text= "文字4"
  269.                  android:textSize= "30sp"
  270.                  android:textColor= "#ffffff"
  271.                  android:background= "#bb00cc"/>
  272.          </TableRow>
  273.      </TableLayout>
  274. </LinearLayout>

 

绝对布局(帧布局)

简介

  它是通过设置android:layout_x 和 android:layout_y属性认位置的。但是Android机有很多机型,并且它们的分辨率也不同,所以这个很少应用在实际的项目中,因为这样会导致每台机型的界面会有很大的差别。所以在这里也不举例来。

ConstraintLayout(约束布局)

简介

  这个布局的优点是在于它灵活度非常高,可以实现手动拖动来进行控件的位置移动。如果手写布局,这个布局类似于RelativeLayout。但是它又区别于RelativeLayout。具体这里就不详细介绍,可以看以下几篇文章。

guolin ConstraintLayout解析  

鸿洋 ConstraintLayout解析

 

demo地址
demo的地址,里面有有5种布局介绍和4种编写计算器布局

 

 

                      欢迎关注我的公众号

      期待的你关注,我会在其不定时的分享技术相关文章,交流群群号:1033629708​

 


转载:https://blog.csdn.net/R_ine/article/details/104548599
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场