界面布局

前言:

  在Android SDK刚刚问世的时候,Android提供了AbsoluteLayout,FrameLayout,LinearLayout,RelativeLayout和Tablelayout五大布局来应对终端碎片化问题。

 

一、LinearLayout布局

  线性布局,这个东西,从外框上可以理解为一个div,他首先是一个一个从上往下罗列在屏幕上。每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。

linearLayout中有一个重要的属性 android:layout_weight="1",这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大。

对齐:layout_gravity
垂直(vertical)的LinearLayout布局内无法通过控件的android:layout_gravity=""进行垂直居中,可以水平居中。
水平(horizontal)的LinearLayout布局内无法通过控件的android:layout_gravity=""进行水平居中,可以垂直居中。
2个都可以用布局的属性android:gravity指定所有控件的居中情况(用center可以水平,垂直居中)。
如果想要某个控件单独水平垂直居中,可以在控件外面再套个LinearLayout,然后android:gravity。

LinearLayout中gravity与layout_gravity
LinearLayout有两个非常相似的属性:android:gravity与android:layout_gravity。他们的区别在于:android:gravity用于设置View组件的对齐方式,而android:layout_gravity用于设置Container组件的对齐方式。

1、 部分属性

  1. android:orientation:指定纵向布局还是横向布局
  2. android:layout_marginLeft:标签外部离屏幕的左边距
  3. android:layout_marginTop:标签外部离屏幕的上边距
  4. android:textSize:字体显示的大小 注意:单位是sp

二、FrameLayout布局

三、RelativeLayout布局

四、TableLayout布局

五、AbsoluteLayout布局

1、部分属性

  1. android:layout_x:绝对于屏幕左上角的角落横向的距离
  2. android:layout_y:绝对于屏幕左上角的角落纵向的距离

代码:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <!-- 绝对布局AbsoluteLayout -->

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="60dp"
        android:layout_y="60dp"
        android:text="Button 1" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_x="160dp"
        android:layout_y="160dp"
        android:text="Button 2" />

</AbsoluteLayout>

效果:

原文地址:https://www.cnblogs.com/shiyoushao/p/6112534.html