relativelayout_relativelayoutlayoutparams - CSDN
  • RelativeLayout又称作相对布局,也是一种非常常用的布局。和LinearLayout的排列规则不同,RelativeLayout显得更加随意一些,它可以通过相对定位的方式让控件出现在布局的任何位置。也正因为如此,RelativeLayout中的...

    RelativeLayout又称作相对布局,也是一种非常常用的布局。和LinearLayout的排列规则不同,RelativeLayout显得更加随意一些,它可以通过相对定位的方式让控件出现在布局的任何位置。也正因为如此,RelativeLayout中的属性非常多,不过这些属性都有规律可循的,其实并不难理解和记忆。我们还是通过实践来体会一下

    activity_main.xml代码:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="btn1"
            android:textAllCaps="false" />
    
        <Button
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:text="btn2"
            android:textAllCaps="false" />
    
        <Button
            android:id="@+id/btn3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="btn3"
            android:textAllCaps="false" />
    
        <Button
            android:id="@+id/btn4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentBottom="true"
            android:text="btn4"
            android:textAllCaps="false" />
    
        <Button
            android:id="@+id/btn5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:text="btn5"
            android:textAllCaps="false" />
    
    </RelativeLayout>

    相对于父布局定位的效果图:

    上面的代码很好理解,根据英文意思就可以明白。(左上,右上,中心,左下,右下)

    关于父布局的对齐方式:

    上:android:layout_alignParentTop

    下:android:layout_alignParentBottom

    中:android:layout_centerInParent

    左:android:layout_alignParentLeft

    右:android:layout_alignParentRight

     

    上面的例子中的每个控件都是相对于父布局进行定位的,那控件可不可以相对于控件进行定位呢?当然是可以的,修改activity_main.xml中的代码:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <Button
            android:id="@+id/btn3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="btn3"
            android:textAllCaps="false" />
    
        <Button
            android:id="@+id/btn1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/btn3"
            android:layout_toLeftOf="@id/btn3"
            android:text="btn1"
            android:textAllCaps="false" />
    
        <Button
            android:id="@+id/btn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@id/btn3"
            android:layout_toRightOf="@id/btn3"
            android:text="btn2"
            android:textAllCaps="false" />
    
        <Button
            android:id="@+id/btn4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/btn3"
            android:layout_toLeftOf="@id/btn3"
            android:text="btn4"
            android:textAllCaps="false" />
    
        <Button
            android:id="@+id/btn5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@id/btn3"
            android:layout_toRightOf="@id/btn3"
            android:text="btn5"
            android:textAllCaps="false" />
    
    </RelativeLayout>

    效果图:

    (相对于控件进行定位的效果图)

    相对于控件进行定位的方式:

    上:android:layout_above="@id/控件id"

    下:android:layout_below="@id/控件id"

    左:android:layout_toLeftOf="@id/控件id"

    右:android:layout_toRightOf="@id/控件id"

    虽然,RelativeLayout的属性众多,但都是有规律可循的。

     

     

     

     

     

     

     

     

    展开全文
  • RelaiveLayout相对布局:...合理地利用好LinearLayout的weight权重属性和RelativeLayout相 对布局,可以解决屏幕分辨率不同的自适应问题。 比如小明在上学的路上,此时他的位置可以用离家多少米或者是离学校多少米...
    RelaiveLayout相对布局:

    相对,顾名思义是有参照的,就是以某个兄弟组件,或者父容器来决定的(兄弟组件是在一个同一个布局里面的组件,如果是布局里一个组件参照另一个布局里的组件会出错)。合理地利用好LinearLayout的weight权重属性和RelativeLayout相 对布局,可以解决屏幕分辨率不同的自适应问题。

      比如小明在上学的路上,此时他的位置可以用离家多少米或者是离学校多少米表示,就是利用不同的参照物。

      好了,废话不多说,直接说比较常用的属性吧~

    设置布局里面所有组件的对其方式:

    android:gravity:设置容器内各个子组件的对齐方式

    android:ignoreGravity:如果为哪个组件设置了这个属性的话,那么该组件不受gravity属性的影响

    根据父容器来定位:

    想位于哪,哪个属性就设置为true

    左对齐:android:layout_alighParentLeft

    右对齐:android:layout_alighParentRight

    顶端对齐:android:layout_alighParentTop

    底部对齐:android:layout_alighParentBottom

    水平居中:android:layout_centerHorizontal

    垂直居中:android:layout_centerVertical

    中央位置:android:layout_centerInParent

    上一张图~(有点丑......大家凑合看~)


    根据兄弟组件来定位(右面的属性值为兄弟组件的id

    左边:android:layout_toLeftOf

    右边:android:layout_toRightOf

    上方:android:layout_above

    下方:android:layout_below

    对齐上边界:android:layout_alignTop

    对齐下边界:android:layout_alignBottom

    对齐左边界:android:layout_alignLeft

    对齐右边界:android:layout_alignRight

     

    这里演示一个比较典型的例子~

    梅花布局:


    相关代码如下:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/RelativeLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <!-- 这个是在容器中央的 -->
        
        <ImageView
            android:id="@+id/img1" 
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_centerInParent="true"
            android:src="@drawable/pic1"    
        />
        
        <!-- 在中间图片的左边 -->
        <ImageView
            android:id="@+id/img2" 
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_toLeftOf="@id/img1"
            android:layout_centerVertical="true"
            android:src="@drawable/pic2"    
        />
        
        <!-- 在中间图片的右边 -->
        <ImageView
            android:id="@+id/img3" 
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_toRightOf="@id/img1"
            android:layout_centerVertical="true"
            android:src="@drawable/pic3"    
        />
        
        <!-- 在中间图片的上面-->
        <ImageView
            android:id="@+id/img4" 
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_above="@id/img1"
            android:layout_centerHorizontal="true"
            android:src="@drawable/pic4"    
        />
        
        <!-- 在中间图片的下面 -->
        <ImageView
            android:id="@+id/img5" 
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_below="@id/img1"
            android:layout_centerHorizontal="true"
            android:src="@drawable/pic5"    
        />

    </RelativeLayout>

    最后还有两个比较常用的Margin和Padding属性!

    Margin:设置组件与父容器(通常是布局)的边距

    android:layout_margin: 指定控件的四周的外部留出一定的边距
    android:layout_marginLeft: 指定控件的左边的外部留出一定的边距
    android:layout_marginTop: 指定控件的上边的外部留出一定的边距
    android:layout_marginRight: 指定控件的右边的外部留出一定的边距
    android:layout_marginBottom: 指定控件的下边的外部留出一定的边距

    Padding:设置组件内部元素间的边距(可以理解为填充)

    android:padding :指定控件的四周的内部留出一定的边距
    android:paddingLeft: 指定控件的左边的内部留出一定的边距
    android:paddingTop: 指定控件的上边的内部留出一定的边距
    android:paddingRight: 指定控件的右边的内部留出一定的边距
    android:paddingBottom: 指定控件的下边的内部留出一定的边距

    这两个后面都跟着一个参数,通常用dp作为单位,eg:android:margin = "10dp"

    效果图如下:



    相关代码:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" >

        <Button
            android:id="@+id/btn1" 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Button"    
        />
        <Button
            android:paddingLeft="100dp" 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Button"
            android:layout_toRightOf="@id/btn1"    
        />

    代码解释:

    这个代码很简单,就是写了两个按钮的组合。

    第一个组合的第二个按钮设置了paddingleft = "100dp:,结果按钮被拉伸了100dp,因为里面的元素间距填充了100dp;

    第二个组合的第二个按钮设置了marginleft = "100dp",结果按钮向右平移了100dp。

    总结

    RelativeLayout用到的一些重要的属性:

    第一类:属性值为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 如果对应的兄弟元素找不到的话就以父元素做参照物

    第二类:属性值必须为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 本元素的右边缘和某元素的的右边缘对齐

    第三类:属性值为具体的像素值,如30dip,40px

    android:layout_marginBottom 离某元素底边缘的距离 
    android:layout_marginLeft 离某元素左边缘的距离 
    android:layout_marginRight 离某元素右边缘的距离 
    android:layout_marginTop 离某元素上边缘的距离

    EditText的android:hint

      设置EditText为空时输入框内的提示信息。

    android:gravity 

      android:gravity属性是对该view 内容的限定.比如一个button 上面的text. 你可以设置该text 在view的靠左,靠右等位置.以button为例,android:gravity="right"则button上面的文字靠右

    android:layout_gravity

      android:layout_gravity是用来设置该view相对与起父view 的位置.比如一个button 在linearlayout里,你想把该button放在靠左、靠右等位置就可以通过该属性设置.以button为例,android:layout_gravity="right"则button靠右

    android:layout_alignParentRight

      使当前控件的右端和父控件的右端对齐。这里属性值只能为true或false,默认false。

    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文件夹里面的图片命名是不能大写的。

    展开全文
  • RelativeLayout相对布局  RelativeLayout是一种相对布局,控件的位置是按照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最常用,也是最灵活的一种布局。    我们下面通过XML布局和...

      RelativeLayout相对布局

      RelativeLayout是一种相对布局,控件的位置是按照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最常用,也是最灵活的一种布局。

      

      我们下面通过XML布局和Java代码布局两种方式分别举例:

    一、XML方式布局

      1、创建一个空白Activity

      

      2、打开“res/layout/activity_main.xml”文件,修改成以下代码。

      

      (1)第①部分

      <?xml version=”1.0” encoding=”utf-8”>,每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言,<?xml version=”1.0”>。这行代码表示按照1.0版本的XML规则进行解析。encoding = “utf-8”表示此xml文件采用utf-8的编码格式。编码格式也可以是GB2312。

      如果你对此不太明白,请参阅相关XML文档。

      (2)第②部分

      <RelativeLayout…… 表示采用相对布局管理器。

      (3)第③部分

      android:layout_width=”match_parent” android:layout_height=”match_parent”表示布局管理器宽度和高充将填充整个屏幕宽度和高度。

      3、插入三个按钮。

      插入三个按钮,并分别设置其文本为:“第一个按钮”、“第二个按钮”、“第三个按钮”。

      

      我们下一步设置第一个按钮距离左边、上边各20dp,第二个按钮距离第一个按钮左边、上边各10dp;第三个按钮距离第二个按钮上边10dp,与第二个按钮左边对齐。

      4、打开“res/layout/activity_main.xml”文件,修改成以下代码。

      

      (1)第①部分

      设置第一个按钮,以父元素为基准,贴紧左上,距离20dp。  

    1. <Button  
    2.        android:id=”@+id/button1”  
    3.       android:layout_width=”wrap_content”                //宽度匹配内容  
    4.        android:layout_height=”wrap_content”               //高度匹配内容    
    5.        android:layout_alignParentLeft=”true”                         //贴紧父元素左边  
    6.        android:layout_alignParentTop=”true”               //贴紧父元素上边   
    7.        android:layout_marginLeft=”20dp”                              //设置左间距20dp  
    8.        android:layout_marginTop=”20dp”                               //设置上间距20dp  
    9.        android:text=”第一个按钮” />  
     <Button
            android:id="@+id/button1"
           android:layout_width="wrap_content"                //宽度匹配内容
            android:layout_height="wrap_content"               //高度匹配内容  
            android:layout_alignParentLeft="true"                         //贴紧父元素左边
            android:layout_alignParentTop="true"               //贴紧父元素上边 
            android:layout_marginLeft="20dp"                              //设置左间距20dp
            android:layout_marginTop="20dp"                               //设置上间距20dp
            android:text="第一个按钮" />

      (2)第②部分

      设置第二个按钮,以第一个按钮为基准,在第一个按钮下面,对齐第一个按钮的右边,上距离15dp。

    1. <Button  
    2.         android:id=“@+id/button2”  
    3.         android:layout_width=“wrap_content”              //宽度匹配内容  
    4.         android:layout_height=“wrap_content”              //高度匹配内容  
    5.         android:layout_below=“@+id/button1”              //位置在第一个按钮的下面  
    6.         android:layout_toRightOf=“@+id/button1”            //与第一个按钮的右边对齐  
    7.         android:layout_marginTop=“15dp”                            //设置上间距15dp  
    8.      android:text=“第二个按钮” />  
    <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"              //宽度匹配内容
            android:layout_height="wrap_content"              //高度匹配内容
            android:layout_below="@+id/button1"              //位置在第一个按钮的下面
            android:layout_toRightOf="@+id/button1"            //与第一个按钮的右边对齐
            android:layout_marginTop="15dp"                            //设置上间距15dp
         android:text="第二个按钮" />
    

      (3)第③部分  

      设置第三个按钮,以第二个按钮为基准,在第二个按钮下面,对齐第二个按钮的左边,距离15dp。

    1. <Button  
    2.     android:id=“@+id/button3”  
    3.     android:layout_width=“wrap_content”              //宽度匹配内容  
    4.     android:layout_height=“wrap_content”              //高度匹配内容  
    5.     android:layout_below=“@+id/button2”              //位置在第二个按钮的下面  
    6.     android:layout_toLeftOf=“@+id/button2”            //与第二个按钮的左边对齐  
    7.     android:layout_marginTop=“15dp”                //设置上间距15dp          
    8.     android:text=“第三个按钮” />  
        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"              //宽度匹配内容
            android:layout_height="wrap_content"              //高度匹配内容
            android:layout_below="@+id/button2"              //位置在第二个按钮的下面
            android:layout_toLeftOf="@+id/button2"            //与第二个按钮的左边对齐
            android:layout_marginTop="15dp"                //设置上间距15dp        
            android:text="第三个按钮" />


      最终显示效果如下:

      

      附:相对布局常用属性介绍

      这里将这些属性分成组,便于理解和记忆。
      a)、第一类:属性值为true或false
      android:layout_centerHrizontal 水平居中
      android:layout_centerVertical 垂直居中
      android:layout_centerInparent 相对于父元素完全居中
      android:layout_alignParentBottom 贴紧父元素的下边缘
      android:layout_alignParentLeft 贴紧父元素的左边缘
      android:layout_alignParentRight 贴紧父元素的右边缘
      android:layout_alignParentTop 贴紧父元素的上边缘  

      b)、第二类:属性值必须为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 本元素的右边缘和某元素的的右边缘对齐



      c)、第三类:属性值为具体的像素值,如30dip,40px
      android:layout_marginBottom 离某元素底边缘的距离
      android:layout_marginLeft 离某元素左边缘的距离
      android:layout_marginRight 离某元素右边缘的距离
      android:layout_marginTop 离某元素上边缘的距离

     

      可以通过组合这些属性来实现各种各样的布局。

     

                </div>
    
    展开全文
  • RelativeLayout属性详解

    2018-10-18 10:33:14
    官网地址   第一类属性 属性值为true或者false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父控件完全居中 ...

    官网地址

     

    第一类属性 属性值为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 如果对应的兄弟控件找不到的话,就以父控件作为参照物

     

     

    第二类属性 属性值必须为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 本控件的右边缘和某控件的有边缘对齐

     

    第三类:属性值为具体的像素值,如30dip,40px

    android:layout_marginBottom 离某控件底边缘的距离

    android:layout_marginLeft 离某控件左边缘的距离

    android:layout_marginRight 离某控件右边缘的距离

    android:layout_marginTop 离某控件上边缘的距离

     

    EditText的android:hint

    设置EditText未输入内容(为空)的提示信息

     

    android:gravity

    对该view的设定,相对于控件内部的位置变化更改。

    比如Bottom的Text,设置为right就是距离父控件。

     

    android:layout_gravity

    相对于父控件,改view的位置变化

     

    android:layout_alignParentRight

    当前控件的有段和父控件的右端对齐,属性只能为true或false,默认为false。

     

    android:scaleType

    该属性主要为控制图片的size。

    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的文件命名不能大写】

    展开全文
  • Android RelativeLayout布局

    2020-01-02 12:32:02
    1. RelativeLayout类 相对布局(RelativeLayout)将子视图以相对位置显示。默认显示在父视图的左上角。 layout_alignParentTop,父视图的上边 layout_alignParentBottom,父视图的下边 layout_alignParent...

    1. RelativeLayout类

    相对布局(RelativeLayout)将子视图以相对位置显示。默认显示在父视图的左上角。

    • layout_alignParentTop,父视图的上边
    • layout_alignParentBottom,父视图的下边
    • layout_alignParentLeft,父视图的左边
    • layout_alignParentRight,父视图的右边

    设置4个子视图在边角位置。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <!-- 左上角显示 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="Default"
            android:gravity="center"
            android:background="#ffa6a5aa"/>
        <!-- 右上角显示 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:text="Right"
            android:gravity="center"
            android:background="#ffa6a5aa"/>
        <!-- 左下角显示 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_alignParentBottom="true"
            android:text="Bottom"
            android:gravity="center"
            android:background="#ffa6a5aa"/>
        <!-- 右下角显示 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:text="Right|Bottom"
            android:gravity="center"
            android:background="#ffa6a5aa"/>
    </RelativeLayout>
    

    效果如下
    这里写图片描述

    2. 居中显示

    layout_centerXX可以在父视图内居中显示

    • layout_centerInParent,相对于父视图完全居中
    • layout_centerHorizontal,相对于父视图水平居中
    • layout_centerVertical,相对于父视图垂直居中

    可以配合alignParentXX使用

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="centerInParent"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerInParent="true"/>
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="centerHorizontal"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerHorizontal="true"/>
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="alignParentBottom"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"/>
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="centerVertical"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerVertical="true"/>
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="alignParentRight"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true"/>
    
    </RelativeLayout>
    

    效果如下
    这里写图片描述

    3. 相对视图对齐

    • layout_above,视图的下边与相对视图的上边对齐
    • layout_below,视图的的上边与相对视图的下边对齐
    • layout_toRightOf,视图的左边与相对视图的右边对齐
    • layout_toLeftOf,视图的右边与相对视图的左边对齐

    设置的子视图的相对位置,

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:id="@+id/tv_center"
            android:layout_width="150dp"
            android:layout_height="60dp"
            android:layout_centerInParent="true"
            android:text="center"
            android:background="#ffffcc00"
            android:gravity="center" />
    
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="above"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_above="@id/tv_center"/>
    
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="below"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_below="@id/tv_center"/>
    
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="toRightOf"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_toRightOf="@id/tv_center"/>
    
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="toLeftOf"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_toLeftOf="@id/tv_center"/>
    
    </RelativeLayout>
    

    效果如下
    在这里插入图片描述

    4. 边对齐

    • layout_alignTop,视图与基准视图的上边对齐
    • layout_alignBottom:视图与基准视图的下边对齐
    • layout_alignLeft:视图与基准视图的左边对齐
    • layout_alignRight:视图与基准视图的右边对齐
    • layout_alignBaseline:视图与基准视图的基准线对齐

    设置的子视图某条边的对齐方式,

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:id="@+id/tv_center"
            android:layout_width="150dp"
            android:layout_height="100dp"
            android:layout_centerInParent="true"
            android:text="center"
            android:textSize="32sp"
            android:background="#ffffcc00"
            android:gravity="center" />
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignTop"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignTop="@id/tv_center"/>
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignBottom"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignBottom="@id/tv_center"/>
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignLeft"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignLeft="@id/tv_center"/>
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignRight"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignRight="@id/tv_center"/>
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignBaseline"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignBaseline="@id/tv_center"/>
    
    </RelativeLayout>
    

    效果如下
    在这里插入图片描述
    相关文章
    Android LinearLayout布局
    Android RelativeLayout布局
    Android ConstraintLayout布局
    Android 自定义布局

    展开全文
  • 下面介绍一下RelativeLayout用到的一些重要的属性:  第一类:属性值为true或false  android:layout_centerHrizontal 水平居中  android:layout_centerVertical
  • 相对布局是按照组件之间的相对位置来经行布局, 例如某个组件在另一个组件的上,下,左,右边。...<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_pa
  • RelativeLayout layout = new RelativeLayout( this ); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 现在我想在...
  • 相对布局和线性布局的性能比较 RelativeLayout和LinearLayout是Android中常用的布局,两者的使用会极大的影响程序生成每一帧的性能,因此,正确的使用它们是提升程序性能的重要工作 (1)RelativeLayout会让子View...
  • RelativeLayout
  • 觉得博文有用,请点赞,请评论,请关注,谢谢!~ 老规矩,先上图,看个效果,如果符合你的项目或者确定你要了解的内容,再往下看吧: 没什么说的,直接看代码吧~~ ...<RelativeLayout xmlns:android="http://sc
  • [size=x-large]RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp2.addRule(RelativeLayout.[color=red]...
  • 官方文档 由上面的官方文档,我们可以看出,两个布局方式的相同,都是继承自View.Group,是一种容器控件,LinearLayout的布局层次比较简单,方向和位置都比较容易控制,而相对布局RelativeLayout 对于其内子控件...
  • android:id="@+id/relativeLayout1"> <RelativeLayout android:minWidth="25px" android:minHeight="25px" android:layout_width="match_parent" android:layout_height="match_parent" android:...
  • RelativeLayout相对布局  RelativeLayout是一种相对布局,控件的位置是按照相对位置来计算的,后一个控件在什么位置依赖于前一个控件的基本位置,是布局最常用,也是最灵活的一种布局。    我们下面通过XML...
  • 相对布局含义 相对布局分两种,一种是相对于当前控件的父视图布局,例如在父视图的中间,左下角之类的。 还有一种是相对于指定视图布局,在指定布局的右边...RelativeLayout xmlns:android="http://schemas.android....
  • 序:本文讲RelativeLayout两点:1. 简单例子说明RelativeLayout使用方法 2.强调 用gravity 而不是用layout_gravity来总体设定RelativeLayout中元素整体对齐方式。 ------------------------------------------------...
  • 前言:以前曾写过一篇关于动态生成控件的文章《动态添加控件及将某XML动态加入到Activity显示》,比较浅显,对于RelativeLayout的相关布局设置方法及相对布局与线性布局的混合使用的相关内容都没有进行深入讨论。...
  • 有时候会发现自己写的一些控件显示不出来,这可能是由于以下几种原因: ... relativeLayout的相对位置应该是先确定一个控件的位置,再接着一个一个确定下来。 3、新手学android的,gravity=“center”改
  • 最近公司项目爱用到圆角背景的RelativeLayout,一般圆角背景的实现思路无非就是两种,第一种用.xml实现,需要用到.9图片,防止图片变形,如果要改变背景颜色的话,不可避免的要找美工妹子作图,看着我的美工妹子一脸...
1 2 3 4 5 ... 20
收藏数 110,840
精华内容 44,336
关键字:

relativelayout