精华内容
下载资源
问答
  • 主要介绍了Android编程之绝对布局AbsoluteLayout和相对布局RelativeLayout实现方法,结合实例形式详细分析了Android绝对布局AbsoluteLayout和相对布局RelativeLayout的原理与使用技巧,需要的朋友可以参考下
  • 在这个教程里,你将学到相对布局的所有知识,相对布局用于将用户界面控件或小工具相对于其它控件或它们的父级布局组织在屏幕上。当使用正确的时候,相对布局可以是很强大和灵活布局,很多有趣的Android程序用户界面...
  • 代码包含线性布局,框架布局,表格布局,相对布局,约束布局的基础使用。
  • NULL 博文链接:https://sunzone.iteye.com/blog/1858186
  • RelativeLayout是相对布局控件:以控件之间相对位置或相对父容器位置进行排列。 相对布局常用属性: 子类控件相对子类控件:值是另外一个控件的id android:layout_above———-位于给定DI控件之上 android:layout_...
  • PyQt5的相对布局管理

    2021-01-20 02:42:52
    PyQt5的相对布局管理 博主PyQt5新手,最近在写一个可视化展示界面,第一个遇到的坑就是布局管理。 其实可以不用相对布局,直接用QtDesigner进行傻瓜式的拖控件也不是不可以,高级一点,也可以用绝对布局,定义控件的...
  • 用Android Studio 2.3.3做的相对布局例子,主要用到的标签有:<RelativeLayout></RelativeLayout>;主要用到的设置有android:id、android:layout_below、android:layout_alignParentRight和android:layout_toLeftOf...
  • 但是,还是建议大家,尤其是新手使用相对布局,一个感受,就是相对布局美观整齐,控件不会乱。 写在前面 如果大家完全初学,建议大家买本书看看,我发现网上能搜到的关于PyQt5教程都是从书上来的,而且网上的教程都...
  • 在本文里小编给大家分享了关于RelativeLayout(相对布局)用法知识点以及对应的实例内容,需要的朋友们学习下。
  • 相对布局和风景-源码

    2021-02-13 14:51:20
    相对布局和风景
  • MGRelativeKit:简单易用的API,将绝对转换为相对布局,无需自动布局
  • 相对布局例程

    2018-06-09 09:16:16
    使用相对布局,让控件成梅花状,使用android studio 编译
  • 安卓相对布局实例

    2018-01-27 10:27:26
    安卓相对布局相对布局是基础的布局实例,是安卓入门的必要技能,通俗易懂的实例,欢迎下载
  • 这个程序写了对相对布局和绝对布局的例子,帮助大家理解两者的使用和区别。
  • 安卓的相对布局与线性布局

    千次阅读 2021-06-12 23:28:00
    分别是:线性布局LinearLayout、表格布局TableLayout、相对布局RelativeLayout、帧布局FrameLayout、绝对布局AbsoluteLayout、网格布局GridLayout。约束布局ConstraintLayout。 其中,表格布局是线性布局的子类。...

    一、安卓布局的种类

    Android共有七大基本布局。
    分别是:线性布局LinearLayout、表格布局TableLayout、相对布局RelativeLayout、帧布局FrameLayout、绝对布局AbsoluteLayout、网格布局GridLayout。约束布局ConstraintLayout。
    其中,表格布局是线性布局的子类。网格布局是android 4.0后新增的布局。约束布局是Android Studio 2.2推出的新布局,并从Android Studio 2.3开始成为默认布局。
    在手机程序设计中,绝对布局基本上不用,用得相对较多的是线性布局和相对布局。以下对线性布局和相对布局大致作一个概述。

    二、相对布局

    相对布局,顾名思义就是通过相对定位的方式让控件出现在布局的任何位置。

    1.常用的基础控件

    Button,TextView,EditText,ImageView

    2.RelativeLayout中子控件常用属性

    1、相对于父控件
    例如:android:layout_alignParentTop=“true”
    android:layout_alignParentTop 控件的顶部与父控件的顶部对齐;
    android:layout_alignParentBottom 控件的底部与父控件的底部对齐;
    android:layout_alignParentLeft 控件的左部与父控件的左部对齐;
    android:layout_alignParentRight 控件的右部与父控件的右部对齐;

    2、相对给定Id控件
    例如:android:layout_above=“@id/…”
    android:layout_above 控件的底部置于给定ID的控件之上;
    android:layout_below 控件的底部置于给定ID的控件之下;
    android:layout_toLeftOf 控件的右边缘与给定ID的控件左边缘对齐;
    android:layout_toRightOf 控件的左边缘与给定ID的控件右边缘对齐;
    android:layout_alignBaseline 控件的baseline与给定ID的baseline对齐;
    android:layout_alignTop 控件的顶部边缘与给定ID的顶部边缘对齐;
    android:layout_alignBottom 控件的底部边缘与给定ID的底部边缘对齐;
    android:layout_alignLeft 控件的左边缘与给定ID的左边缘对齐;
    android:layout_alignRight 控件的右边缘与给定ID的右边缘对齐;

    3、居中
    例如:android:layout_centerInParent=“true”
    android:layout_centerHorizontal 水平居中;
    android:layout_centerVertical 垂直居中;
    android:layout_centerInParent 父控件的中央;

    3.示例代码

    activity_main.xml

    <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:background="@drawable/bg_shopping_menu"
        tools:context=".MainActivity" >
        
        <RelativeLayout 
         	android:layout_width="match_parent"
         	android:layout_height="wrap_content"
         	android:background="#4EEE94"   
         >
            <TextView 
                android:layout_width="wrap_content"
    	    	android:layout_height="wrap_content"
             	android:text="heavy-sea.智能家居" 
             	android:layout_centerVertical="true"
             	android:layout_marginLeft="20dp"
             	android:textSize="15dp"  
            	 />
            <Button 
                android:id="@+id/b1"
                android:layout_width="wrap_content"
    	    	android:layout_height="wrap_content"
    	    	android:text="注册"
    	    	android:layout_alignParentRight="true"
                />
            <Button 
                android:layout_width="wrap_content"
    	    	android:layout_height="wrap_content"
    	    	android:text="查询"
    	    	android:layout_toLeftOf="@id/b1"
    	    	android:layout_marginRight="20dp"
                />
        </RelativeLayout>
        
    	<ImageView
    	    android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:src="@drawable/pic_rf"
    	    android:layout_centerInParent="true"	    
    	  />
    	
    	<ImageView 
    		android:layout_width="wrap_content"
    		android:layout_height="wrap_content"
    		android:src="@drawable/card"
    		android:layout_centerInParent="true"
    		android:paddingLeft="100dp"    
    	/>
    	
    	<Button
    	    android:layout_width="wrap_content"
    	    android:layout_height="wrap_content"
    	    android:background="@drawable/btn_selector"
    	    android:text="刷卡"
    	    android:layout_centerHorizontal="true"
    	    android:layout_alignParentBottom="true" 
    	    android:layout_marginBottom="10dp"
    	/>
    	
    </RelativeLayout>
    
    

    布局显示:
    在这里插入图片描述

    三、线性布局

    线性布局会将它所包含的控件在线性方向上依次排列。
    在这个布局主要通过设置 android:orientation 属性来指定布局的排列方式。如果为 vertical 则在垂直方向上线性排列,如果为 horizontal 则会在水平方向上排列。

    1.常用属性

    android:orientation 指定布局的排列方式,如果为 vertical 则在垂直方向上线性排列,如果为 horizontal 则会在水平方向上排列。
    android:gravity 内部控件对齐方式,常用属性值有center、center_vertical、center_horizontal、top、bottom、left、right等,同时可多个组合,如(left|buttom)。
    android:layout_gravity 该组件在父容器中的对齐方式
    android:id 为该组件设置一个ID,在java文件中可以通过findViewById(id)找到组件

    2.Weight(权重)

    android:layout_weight:权重,用来分配当前控件在剩余空间的大小。
    简单的用法可概括为要等比例划分控件所在的空间,控件本身占空间比例为多少。

    3.divider分割线

    用于为Linearlayout设置分割线图片,通过showDividers设置分割线的所在位置
    android:divider 设置分割线的图片
    android:showDividers 设置分割线的所在位置,可选none,middle,begining,end
    android:dividerPadding 设置分割线的padding

    4.示例代码

    line.xml

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="line" >
    
        <size
            android:height="2dp"
            android:width="20dp" />
    
        <stroke android:color="#00ff00" />
    
    </shape>
    

    activity_main.xml

    <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:background="@drawable/bg_shopping_menu"
        tools:context=".MainActivity" >
    
        <LinearLayout
            android:layout_width="300dp"
            android:layout_height="200dp"
            android:layout_centerInParent="true"
            android:orientation="horizontal" >
    
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="2"
                android:divider="@drawable/line"
                android:orientation="vertical"
                android:showDividers="middle|end" >
    
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:gravity="center_horizontal|bottom"
                    android:text="账号"
                    android:textSize="20dp" />
    
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:gravity="center_horizontal|bottom"
                    android:text="昵称"
                    android:textSize="20dp" />
    
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:gravity="center_horizontal|bottom"
                    android:text="密码"
                    android:textSize="20dp" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="200dp"
                android:layout_weight="4"
                android:orientation="vertical" >
    
                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1" />
    
                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1" />
    
                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1" />
            </LinearLayout>
        </LinearLayout>
    
    </RelativeLayout>
    

    该布局中先整体来一个线性布局,把所有的TextView和所有的EditText分别看成一个整体,二者用orientation指定排列方式为水平的。
    再对所有的TextView来一个线性布局,里面所有的TextView用orientation指定排列方式为垂直的。
    再对所有的EditText来一个线性布局,里面所有的EditText用orientation指定排列方式为垂直的。
    布局显示
    在这里插入图片描述

    展开全文
  • 自定义相对布局

    2016-09-29 09:55:35
    这是一个自定义相对布局 里面重写了onSizechange onMearuse onLayout三个方法 这个是自定义控件中常用的需要重写的一些方法 三个方法的执行顺序就是按照上面的顺序执行的 希望初学者能够看下
  • 探索线性布局、相对布局、网格布局和搜索栏的使用 任务 1“关于我”片段——这个片段将是所有未来家庭作业的要求。 在此片段中,您需要显示以下信息:  您的全名  您所属的班级(例如 CIS 400 或 CSE 691 等) ...
  • 相对布局属性讲解

    2016-07-15 16:32:18
    相对布局属性讲解
  • 相对布局

    2021-01-12 19:41:29
    文章目录相对布局RelativeLayout输入姓名常见相对布局基本属性:根据父容器定位根据兄弟组件定位4、填充(padding)创建安卓应用编写主布局资源文件运行效果按钮布局创建安卓应用主布局资源文件运行效果 相对布局...

    相对布局RelativeLayout

    输入姓名

    常见相对布局基本属性:

    • gravity :设置该布局容器内各子组件的对齐方式

    • ignoreGravity:设置哪个组件不受gravity属性的影响

    根据父容器定位

    • layout_alignParentLeft 左对齐
    • layout_alignParentRight 右对齐
    • layout_alignParentTop 顶部对齐
    • layout_centerVertical 垂直居中
    • layout_centerInparent 中间位置
    • layout_alignParentBottom 底部对齐

    根据兄弟组件定位

    • android:layout_toLeftOf 参考组件的左边

    • android:layout_toRightOf 参考组件的右边

    • android:layout_above 参考组件的上方

    • android:layout_below 参考组件的下方

    • android:layout_alignTop 对齐参考组件的上边界

    • android:layout_alignBottom 对齐参考组件的下边界

    • android:layout_alignLeft 对齐参考组件的左边界

    • android:layout_alignRight 对齐参考组件的右边界

    4、填充(padding)

    • android:padding 上下左右填充边距

    • paddingLeft 左边填充边距

    • paddingRight 右边填充边距

    • paddingTop 上方填充边距

    • paddingBottom 下方填充边距

    创建安卓应用

    在这里插入图片描述

    编写主布局资源文件

    <?xml version="1.0" encoding="utf-8"?>
    <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"
        tools:context=".MainActivity">
    
        <EditText
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:id="@+id/edtName"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:hint="请输入姓名"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/tvName"
            android:text="姓名:"
            android:textSize="20dp"
            android:layout_alignBaseline="@+id/edtName"
            android:layout_toLeftOf="@+id/edtName"/>
        <Button
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginTop="50dp"
            android:id="@+id/edtCancel"
            android:text="取消"
            />
    
        <Button
            android:id="@+id/edtOK"
            android:layout_width="60dp"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
    
            android:layout_marginTop="50dp"
            android:layout_marginRight="84dp"
            android:text="确定" />
    
    </RelativeLayout>
    
    

    运行效果

    在这里插入图片描述

    按钮布局

    创建安卓应用

    在这里插入图片描述

    主布局资源文件

    <?xml version="1.0" encoding="utf-8"?>
    <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"
        tools:context="net.tp.relativelayoutdemo.MainActivity">
    
        <Button
            android:id="@+id/btn_center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:text="中央" />
    
        <Button
            android:id="@+id/btn_upper_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@id/btn_center"
            android:layout_above="@id/btn_center"
            android:text="左上"/>
    
        <Button
            android:id="@+id/btn_upper_right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/btn_center"
            android:layout_above="@id/btn_center"
            android:text="右上"/>
    
        <Button
            android:id="@+id/btn_lower_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toLeftOf="@id/btn_center"
            android:layout_below="@id/btn_center"
            android:text="左下"/>
    
        <Button
            android:id="@+id/btn_lower_right"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@id/btn_center"
            android:layout_below="@id/btn_center"
            android:text="右下"/>
    
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/btn_lower_left"
            android:layout_alignLeft="@id/btn_lower_left"
            android:layout_marginTop="15dp"
            android:text="确定"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/btn_lower_right"
            android:layout_alignRight="@id/btn_lower_right"
            android:layout_marginTop="15dp"
            android:text="取消"
            />
    
        <Button
            android:id="@+id/btn_upper_left_corner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:text="左上角"/>
    
        <Button
            android:id="@+id/btn_upper_right_corner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:text="右上角"/>
    
        <Button
            android:id="@+id/btn_lower_left_corner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentBottom="true"
            android:text="左下角"/>
        <Button
            android:id="@+id/btn_lower_right_corner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:text="右下角"/>
    
    
    </RelativeLayout>
    
    

    运行效果

    在这里插入图片描述

    展开全文
  • Android studio的相对布局

    千次阅读 2020-05-18 23:39:52
    Android studio 的相对布局学习 相对布局——RealativeLayout,在安卓开发中存在非常大的作用,我们可以使用相对布局来更巧妙的控制我们的控件的摆放。今天我们学习控件基于页面居中,左上,右上,左下,右下,基于...

    Android studio 的相对布局学习

    相对布局——RealativeLayout,在安卓开发中存在非常大的作用,我们可以使用相对布局来更巧妙的控制我们的控件的摆放。今天我们学习控件基于页面居中,左上,右上,左下,右下,基于居中控件的左上,右上,左下,右下,为了方便学习,这里的控件均采用按钮。

    控件基于页面居中

    完成页面居中处理,我们要先设置我们的布局设置

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    

    完成这一步过后,可以通过界面布局完成控件居中

     android:layout_centerInParent="true"
    

    为了后续相对布局的继续学习,我们需要将相对控件基于第一位

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="居中"
        android:layout_centerInParent="true"
        android:textAllCaps="false"
        />
    

    控件居中

    控件基于页面左上、右上、左下、右下

    控件基于页面的布局设置,基于这几条设置

    android:layout_alignParentTop="true"   //页面顶部
    android:layout_alignParentBottom="true"  //页面底部
    android:layout_alignParentLeft="true"   //页面左侧
    android:layout_alignParentRight="true"  //页面右侧
    

    通过这几条设置相互组合即可完成控件基于页面左上、右上、左下、右下

    //左上
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    
    //右上
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"//不设置基于右侧,会自动设置为基于左侧
    
    //左下
    android:layout_alignParentBottom="true"  //不设置基于底部,会自动设置为基于顶部
    android:layout_alignParentLeft="true"   
    
    //右下
    android:layout_alignParentBottom="true"  //不设置基于底部,会自动设置为基于顶部
    android:layout_alignParentRight="true"  //不设置基于右侧,会自动设置为基于左侧
    

    我们将这些设置运用到控件上

    四角控件

    控件基于居中控件的左上、右上、左下、右下

    控件基于居中控件,基于这几条设置

    android:layout_above="@id/button3"    //居中控件顶部
    android:layout_below="@id/button3"    //居中控件底部
    android:layout_toLeftOf="@id/button3"  //居中控件左侧
    android:layout_toRightOf="@id/button3"  //居中控件右侧
    

    通过这几条设置相互组合即可完成控件基于居中控件左上、右上、左下、右下

    //基于居中控件左上
    android:layout_toLeftOf="@id/button3"
    android:layout_above="@id/button3"
    
    //基于居中控件右上
    android:layout_toRightOf="@id/button3"
    android:layout_above="@id/button3"
    
    //基于居中控件左下
    android:layout_toLeftOf="@id/button3"
    android:layout_below="@id/button3"
    
    //基于居中控件右下
    android:layout_toRightOf="@id/button3"
    android:layout_below="@id/button3"
    

    将这些设置运用到控件中
    得到了我们想要的控件基于居中控件的左上、右上、左下、右下效果

    基于居中控件

    控件基于居中控件的正上、正下、正左、正右

    如果将基于居中控件的设置单独设置上下左右会出现怎样的情况呢?

    android:layout_above="@id/button3"    
    android:layout_below="@id/button3"    
    android:layout_toLeftOf="@id/button3"  
    android:layout_toRightOf="@id/button3"  
    

    是否会出现出现我们正上,正下,正左,正右吗?
    单独设置
    它并没有我们预期的那样存在居中按键的上下左右,反而相当怪异的布局,为什么会出现这样的情况呢?
    我们可以在工程文件找到答案
    工程文件
    原来是系统简单执行,那我们要怎样才能达到我们预期的效果
    那要怎样才可以完成正上,正下,正左,正右呢?我们要将我们上面所学的知识点结合,通过工程文件可以看出,四个控件缺少居中处理,我们加入居中代码处理看看会怎样。

        //正上
        android:layout_centerInParent="true"
        android:layout_above="@id/button3"
        
        //正下
        android:layout_centerInParent="true"
        android:layout_below="@id/button3"
    
        //正左
        android:layout_toLeftOf="@id/button3"
        android:layout_centerInParent="true"
    
        //正右
        android:layout_toRightOf="@id/button3"
        android:layout_centerInParent="true"
    

    通过居中调整,达到了我们预期的期望,完成了正方向的上下左右相对布局
    正方向处理

    下面贴上完整布局代码以及效果:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
    //居中控件
        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="居中"
            android:layout_centerInParent="true"
            android:textAllCaps="false"
            />
    
    //基于页面四角控件
       <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="左上"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:textAllCaps="false"
        />
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="右上"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:textAllCaps="false"
            />
        <Button
            android:id="@+id/button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="左下"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:textAllCaps="false"
            />
        <Button
            android:id="@+id/button5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="右下"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:textAllCaps="false"
            />
    
    //基于控件四角
        <Button
            android:id="@+id/button6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="中左上"
            android:layout_toLeftOf="@id/button3"
            android:layout_above="@id/button3"
            android:textAllCaps="false"
            />
        <Button
            android:id="@+id/button7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="中右上"
            android:layout_toRightOf="@id/button3"
            android:layout_above="@id/button3"
            android:textAllCaps="false"
            />
        <Button
            android:id="@+id/button8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="中左下"
            android:layout_toLeftOf="@id/button3"
            android:layout_below="@id/button3"
            android:textAllCaps="false"
            />
        <Button
            android:id="@+id/button9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="中右下"
            android:layout_toRightOf="@id/button3"
            android:layout_below="@id/button3"
            android:textAllCaps="false"
            />
            
         //基于控件正方向
        <Button
            android:id="@+id/button10"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="上"
            android:layout_centerInParent="true"
            android:layout_above="@id/button3"
            android:textAllCaps="false"
            />
        <Button
            android:id="@+id/button11"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="下"
            android:layout_centerInParent="true"
            android:layout_below="@id/button3"
            android:textAllCaps="false"
            />
        <Button
            android:id="@+id/button12"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="左"
            android:layout_toLeftOf="@id/button3"
            android:layout_centerInParent="true"
            android:textAllCaps="false"
            />
        <Button
            android:id="@+id/button13"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="右"
            android:layout_toRightOf="@id/button3"
            android:layout_centerInParent="true"
            android:textAllCaps="false"
            />
    </RelativeLayout>
    

    在这里插入图片描述

    相对布局的学习目前就这么多了,学无止境,继续努力
    大家一起学习努力

    展开全文
  • RelativeLayout中子控件常用属性: 子控件默认是从父控件的左上...shape是分割线的形状 分割线的宽 android:height="2dp" 分割线的高 /> 这个是分割线的颜色 /> shape> 使用线性布局和相对布局写一个丑陋的登录界面: ...

    RelativeLayout中子控件常用属性:

    子控件默认是从父控件的左上角开始排列的

    • 相对于父控件
     android:layout_alignParentTop="true"     和父控件的顶部对齐
     android:layout_alignParentBottom="true"  和父控件的底部对齐
     android:layout_alignParentRight="true"   和父控件的右端对齐
     android:layout_alignParentLeft="true"    和父控件的左端对齐
    
    • 相对于给定的ID控件
    android:layout_above="@id/cat1"        控件的底部置于给定ID的控件之上
    android:layout_below="@id/cat1"        控件底部置于给定ID的控件之下·
    android:layout_toRightOf="@id/cat1"    控件的左边缘与给定ID的控件的右边缘对齐
    android:layout_toLeftOf="@id/cat1"     控件的右边缘与给定ID的控件的左边缘对齐
    android:layout_alignBottom="@id/cat1"  与给定控件的底边缘对齐
    android:layout_alignLeft="@id/cat1"    与给定控件的左边缘对齐
    android:layout_alignTop="@id/cat1"     与给定控件的定边缘对齐
    android:layout_alignRight="@id/cat1"   与给定控件的右边缘对齐
    android:layout_alignBaseline="@id/cat1"控件的Baseline与给定ID控件的Baseline对齐,其实这个baseline相当于笔记本里写文字时候的底下的那条线
    
    android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐
    android:layout_toRightOf  在某元素的右边
    
    • 居中
     android:layout_centerHorizontal="true"    水平居中
     android:layout_centerVertical="true"      垂直居中
     android:layout_centerInParent="true"      相对于父控件处在正中央
    

    一个简单的登录界面:

    <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" >
    	
    	<RelativeLayout
    	    android:layout_height="150dp"
    	    android:layout_width="400dp"
    	    android:layout_centerInParent="true"
    	    android:background="#ff0000">
    	    <TextView
    	        android:id="@+id/user"
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:layout_marginTop="10dp"
    	        android:text="用户:"
    	        android:textSize="20dp"
    	        android:textColor="#ffffff"
    	    />
    	    <EditText
    	        android:id="@+id/userline"
    	        android:layout_marginTop="5dp"
    	        android:layout_width="300dp"
    	        android:layout_height="40dp"
    	        android:layout_toRightOf="@id/user"/>
    	    <TextView
    	        android:id="@+id/passwd"
    	        android:layout_marginTop="10dp"
    	        android:layout_below="@id/user"
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:text="密码:"
    	        android:textSize="20dp"
    	        android:textColor="#ffffff"
    	    />
    	    <EditText
    	        android:id="@+id/passwdline"
    	        android:layout_width="300dp"
    	        android:layout_height="40dp"
    	        android:layout_below="@id/userline"
    	        android:layout_toRightOf="@id/passwd"/>
    	    <Button
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:text="确定"
    	        android:layout_alignParentRight="true"
    	        android:layout_below="@id/passwdline"
    	        />
    	</RelativeLayout>
    </RelativeLayout>
    
    

    所的结果:
    在这里插入图片描述
    布局间的所属关系:
    在这里插入图片描述

    Margin和Padding:

    盒模型(控件)主要定义四个区域:内容 (content)、边框距(padding)即内边距、边界(border)和外边距(margin)。 对于初学者,经常会搞不清楚margin,background-color,background- image,padding,content,border之间的层次、关系和相互影响。这里提供一张盒模型的平面示意图,希望便于你的理解和记忆。Margin 是整体移动,带着控件里面的内容(content),而padding 是移动控件里面的内容相对于控件Bprder的距离。
    在这里插入图片描述
    将上述界面进行美化:

    <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" >
    	
    	<RelativeLayout
    	    android:id="@+id/laout1"
    	    android:layout_height="150dp"
    	    android:layout_width="400dp"
    	    android:layout_centerInParent="true"
    	    android:background="#ff0000">
    	    <TextView
    	        android:id="@+id/user"
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:layout_marginTop="20dp"
    	        android:layout_marginLeft="10dp"
    	        android:layout_marginRight="10dp"
    	        android:text="用户:"
    	        android:textSize="20dp"
    	        android:textColor="#ffffff"
    	    />
    	    <EditText
    	        android:id="@+id/userline"
    	        android:layout_marginTop="5dp"
    	        android:layout_width="300dp"
    	        android:layout_height="40dp"
    	        android:layout_toRightOf="@id/user"/>
    	    <TextView
    	        android:id="@+id/passwd"
    	        android:layout_marginTop="20dp"
    	        android:layout_below="@id/user"
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:layout_marginLeft="10dp"
    	        android:layout_marginRight="10dp"
    	        android:text="密码:"
    	        android:textSize="20dp"
    	        android:textColor="#ffffff"
    	    />
    	    <EditText
    	        android:id="@+id/passwdline"
    	        android:layout_width="300dp"
    	        android:layout_height="40dp"
    	        android:layout_below="@id/userline"
    	        android:layout_toRightOf="@id/passwd"/>
    	    <Button
    	        android:id="@+id/btn1"
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	       	android:layout_alignParentLeft="true"
    			android:layout_marginLeft="90dp"
    	        android:text="确定"
    	        android:layout_below="@id/passwdline"
    	        />
    	    <Button
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:text="取消"
    	        android:layout_toRightOf="@id/btn1"
    	        android:layout_below="@id/passwdline"
    	        android:layout_marginLeft="80dp"
    	     />
    	</RelativeLayout>
    	<RelativeLayout
    	    android:id="@+id/layout2"
    	    android:background="#ff0000"
    	    android:layout_width="match_parent"
    	    android:layout_height="match_parent"
    	    android:layout_below="@id/laout1"
    	    android:layout_marginTop="10dp"
    	    >
    	    <ImageView
    	        android:layout_width="wrap_content"
    	        android:layout_height="wrap_content"
    	        android:layout_margin="100dp"
    	        android:src="@drawable/picture2"
    	     />
    	</RelativeLayout>
    </RelativeLayout>
    

    如下图所示:
    在这里插入图片描述

    安卓按键快速美化

    • 在res/drawable目录下新建按钮样式文件 btn_normal.xml(正常状态) 和 btn_pressed.xml(按下状态)。

    btn_normal.xml文件:

    <?xml version="1.0" encoding="utf-8"?>
    <shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <!-- 圆角的半径 -->
        <corners android:radius="10dp"/>
        <!-- 填充颜色 -->
        <solid android:color="#3a8fea"/>
    </shape>
    

    btn_pressed.xml文件:

    <?xml version="1.0" encoding="utf-8"?>
    <shape 
    	xmlns:android="http://schemas.android.com/apk/res/android"
    	android:shape="rectangle">
        <!-- 圆角的半径 -->
        <corners android:radius="10dp"/>
        <!-- 填充颜色 -->
        <solid android:color="#0662f5"/>
    </shape>
    
    • 在res/drawable目录下新建样式文件 btn_selector.xml 文件,定义按钮的不同状态样式。

    btn_selector.xml文件:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <!-- 正常状态 -->
        <item android:drawable="@drawable/btn_normal" android:state_pressed="false"/>
    
        <!-- 按下状态 -->
        <item android:drawable="@drawable/btn_pressed" android:state_pressed="true"/>
    
    </selector>
    

    练习制作刷卡界面:

    <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:background="@drawable/bg_shopping_menu"
        tools:context=".MainActivity" >
    	<ImageView 
    	    android:layout_height="wrap_content"
    	    android:layout_width="wrap_content"
    	    android:layout_centerInParent="true"
    	    android:src="@drawable/pic_rf"/>
    	<ImageView
    	    android:layout_height="wrap_content"
    	    android:layout_width="wrap_content"
    	    android:layout_centerInParent="true"
    	    android:src="@drawable/card"
    	    android:paddingLeft="100dp"
    	    android:paddingTop="50dp"
    	    />
    	<Button
    	    android:layout_height="wrap_content"
    	    android:layout_width="wrap_content"
    	    android:layout_centerHorizontal="true"
    	    android:layout_marginBottom="30dp"
    	    android:layout_alignParentBottom="true"
    	    android:text="刷卡"
    	    android:background="@drawable/btn_selector"
    	    android:textColor="#ff0000"
    	    />
    	<RelativeLayout
    	    android:layout_height="wrap_content"
    	    android:layout_width="match_parent"
    	    android:background="#00ff00"
    	    >
    	 <TextView
    	     android:layout_width="wrap_content"
    	     android:layout_height="wrap_content"
    	     android:textSize="30dp"
    	     android:text="刷卡界面"
    	     android:layout_marginLeft="20dp"
    	     />
    	 <Button
    	     android:id="@+id/butn1"
    	     android:layout_height="wrap_content"
    	     android:layout_width="wrap_content"
    	     android:text="注册"
    	     android:layout_alignParentRight="true"     
    	     />
    	 <Button
    	     android:layout_width="wrap_content"
    	     android:layout_height="wrap_content"
    	     android:text="查询信息"
    	     android:layout_toLeftOf="@id/butn1"
    	     android:layout_marginRight="20dp"
    	     />
    	        
    	 </RelativeLayout>
    
    
    </RelativeLayout>
    
    

    结果如下:
    在这里插入图片描述
    LinearLayout常用属性(它的父控件还是RelativeLayout,所以RelativeLayout的属性还可以拿来用):

    • orientation: 布局中控件的排列方式,有vertical(竖直,默认)horizontal(水平)两种方式
    • gravity:控制组件所包含的子元素的对齐方式,可多个组合,如left|buttom(这个是基础控件相对于父控件来说的)
    • layout_gravity: 控制该组件在父容器中的对齐方式,(这个是布局控件相对于父控件来说的)
    • layout_width:布局宽度,通常不直接写数字的,用wrap_content(组件实际大小)fill_parent或者match_marent(填满父容器)
    • layout_height:布局的高度,参数同上
    • background:为组件设置一个背景图片,或者直接用颜色覆盖

    Weight(权重):

    该属性用来等比例地划分区域。

    • 最简单的用法:要等比例划分,分谁,谁为0,Weight按比例即可
    • 当我们设置宽度为0dp时,同时设置weight属性为1,意思就是在宽度方向上所占比重为1。如果将height设置为0,同时设置weight属性为2,意思就是在竖直方向所占比重为2。

    divider分割线:

    该属性用于LinearLayout设置分割图片,通过showDivider来设置分割线的所在位置,有四个可选值:nonemiddlebeginingend,当然还可以通过:

    • divider: 为LinearLayout设置分割线的图片
    • showDivider: 设置分割线所在位置,有四个通道:nonemiddlebeginingend
    • dividerPadding: 设置分割线的Padding

    设置分割线(divider):
    在这里插入图片描述
    在这里插入图片描述
    然后编辑该分割线的代码:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
      	android:shape="line">      shape是分割线的形状
        <size
            android:width="200dp"  分割线的宽
            android:height="2dp"   分割线的高
            />
        <stroke
            android:color="#000000"  这个是分割线的颜色
            />
    </shape>
    

    使用线性布局和相对布局写一个丑陋的登录界面:

    <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:background="@drawable/bg_shopping_menu"
        tools:context=".MainActivity" >
    
        <LinearLayout
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:orientation="horizontal" >
    
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:divider="@drawable/divider"
                android:showDividers="middle|end"
                android:dividerPadding="2dp"
                android:orientation="vertical" >
    
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textStyle="bold"
                    android:textSize="15dp"
                    android:text="账号:" />
    
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textStyle="bold"
                    android:textSize="15dp"
                    android:text="密码:" />
    
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:textStyle="bold"
                    android:textSize="15dp"
                    android:text="ID:" />
            </LinearLayout>
    
            <LinearLayout
                android:layout_width="0dp"
                android:layout_height="match_parent"
                android:layout_weight="5"
                android:orientation="vertical" >
    
                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1" />
    
                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1" />
    
                <EditText
                    android:layout_width="match_parent"
                    android:layout_height="0dp"
                    android:layout_weight="1" />
            </LinearLayout>
        </LinearLayout>
    
    </RelativeLayout>
    

    结果如下图所示:
    在这里插入图片描述

    展开全文
  • NULL 博文链接:https://byandby.iteye.com/blog/830420
  • 相对布局属性大全 ,字典 ,RelativeLayout布局。有了字典不需要再每次上网去搜索了.
  • 相对布局实现登录界面设计 包括用户名、密码框,确定、取消按钮 用到了控件layout_alignParentLeft、layout_alignParentRight、layout_alignParentEnd、layout_below、layout_alignLeft、layout_alignRight、...
  • Android线性布局和相对布局的详解和区别

    万次阅读 多人点赞 2018-10-31 20:14:44
    线性布局:线性布局是我们在开发中最常见的布局方式之一,线性布局可以分为水平线性布局和垂直线性布局这两种布局方式 线性布局的属性(决定布局中元素的位置和布局): android:layout_gravity ( 是本元素相对于...
  • Andriod开发相对布局Andriod开发相对布局的使用的使用
  • 1.2 布局的种类:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、表格布局(TableLayout)、网格布局(GridLayout)、约束布局(ConstraintLayout)其中三种不常用布局帧布局、...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 213,139
精华内容 85,255
关键字:

相对布局

友情链接: Experiment_8_cxnGe2QFv2.rar