Android 五大布局方式详解_Android

Android中常用的5大布局方式有以下几种:

线性布局(LinearLayout):按照垂直或者水平方向布局的组件。
帧布局(FrameLayout):组件从屏幕左上方布局组件。
表格布局(TableLayout):按照行列方式布局组件。
相对布局(RelativeLayout):相对其它组件的布局方式。
 绝对布局(AbsoluteLayout):按照绝对坐标来布局组件。

 1. 线性布局

线性布局是Android开发中最常见的一种布局方式,它是按照垂直或者水平方向来布局,通过“android:orientation”属性可以设置线性布局的方向。属性值有垂直(vertical)和水平(horizontal)两种。

常用的属性:

android:orientation:可以设置布局的方向
android:gravity:用来控制组件的对齐方式
layout_weight:控制各个组件在布局中的相对大小

第一个实例

①效果图:

 ②核心代码如下:

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <LinearLayout
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="vertical"
 >
 <EditText
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  />
 </LinearLayout>
 <LinearLayout
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal"
 android:gravity="right"
 >
 <!-- android:gravity="right"表示Button组件向右对齐 -->
 <Button
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:text="确定"
  />
 <Button
  android:layout_height="wrap_content"
  android:layout_width="wrap_content"
  android:text="取消"
  />
 </LinearLayout>
</LinearLayout>

第二个实例

①效果图:

 ②核心代码:

mian.xml

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

 <LinearLayout
 android:orientation="horizontal"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:layout_weight="1"> 

 <TextView
 android:text="red"
 android:gravity="center_horizontal"
 android:background="#aa0000"
 android:layout_width="wrap_content"
 android:layout_height="fill_parent"
 android:layout_weight="1"
 />
 <!--android:gravity="center_horizontal"水平居中 -->
 <!--layout_weight属性以控制各个控件在布局中的相对大小。layout_weight属性是一个非负整数值。
  线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。
 例如,在水平布局的LinearLayout中有两个Button,这两个Button的layout_weight属性值都为1,
 那么这两个按钮都会被拉伸到整个屏幕宽度的一半。如果layout_weight指为0,控件会按原大小显示,不会被拉伸;
 对于其余layout_weight属性值大于0的控件,系统将会减去layout_weight属性值为0的控件的宽度或者高度,
 再用剩余的宽度或高度按相应的比例来分配每一个控件显示的宽度或高度-->
 <TextView
 android:text="Teal"
 android:gravity="center_horizontal"
 android:background="#008080"
 android:layout_width="wrap_content"
 android:layout_height="fill_parent"
 android:layout_weight="1"/> 

 <TextView
 android:text="blue"
 android:gravity="center_horizontal"
 android:background="#0000aa"
 android:layout_width="wrap_content"
 android:layout_height="fill_parent"
 android:layout_weight="1"
 /> 

 <TextView
 android:text="orange"
 android:gravity="center_horizontal"
 android:background="#FFA500"
 android:layout_width="wrap_content"
 android:layout_height="fill_parent"
 android:layout_weight="1"
 /> 

 </LinearLayout>
 <LinearLayout
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:layout_weight="1"> 

 <TextView
 android:text="row one"
 android:textSize="15pt"
 android:background="#aa0000"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 />
 <!-- -->
 <TextView
 android:text="row two"
 android:textSize="15pt"
 android:background="#DDA0DD"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 /> 

 <TextView
 android:text="row three"
 android:textSize="15pt"
 android:background="#008080"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 />
 <TextView
 android:text="row four"
 android:textSize="15pt"
 android:background="#FFA500"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:layout_weight="1"
 />
 </LinearLayout>
</LinearLayout>

2. 帧布局

帧布局是从屏幕的左上角(0,0)坐标开始布局,多个组件层叠排列,第一个添加的组件放到最底层,最后添加到框架中的视图显示在最上面。上一层的会覆盖下一层的控件。

 简单的例子

①效果图:

 

② 核心代码:

main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <TextView
 android:layout_width="300dp"
 android:layout_height="300dp"
 android:background="#00BFFF"
 />
 <TextView
 android:layout_width="260dp"
 android:layout_height="260dp"
 android:background="#FFC0CB"
 />
 <TextView
 android:layout_width="220dp"
 android:layout_height="220dp"
 android:background="#0000FF"
 />
</FrameLayout>

 3.表格布局

表格布局是一个ViewGroup以表格显示它的子视图(view)元素,即行和列标识一个视图的位置。

表格布局常用的属性如下:

android:collapseColumns:隐藏指定的列
android:shrinkColumns:收缩指定的列以适合屏幕,不会挤出屏幕
android:stretchColumns:尽量把指定的列填充空白部分
android:layout_column:控件放在指定的列
android:layout_span:该控件所跨越的列数

 简单的列子:

①效果图:

② 核心代码: 

main.xml

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <TableRow>
 <Button
  android:text="Button1"
  />
 <Button
  android:text="Button2"
  />
 <Button
  android:text="Button3"
  />
 </TableRow>
 <TableRow>
 <Button
  android:text="Button4"
  />
 <Button
  android:layout_span="2"
  android:text="Button5"
  />
 </TableRow> 

</TableLayout>

 4.相对布局

相对布局是按照组件之间的相对位置来布局,比如在某个组件的左边,右边,上面和下面等。

相对布局常用属性请参考我博客的:http://www.jb51.net/article/47434.htm

简单的例子

①效果图:

② 核心代码:

main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:padding="10px"
 >
 <TextView
 android:id="@+id/tev1"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginBottom="30dp"
 android:text="Please Type Here:"
 />
 <EditText
 android:id="@+id/tx1"
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:layout_below="@id/tev1"
 />
 <Button
 android:id="@+id/btn1"
 android:layout_height="wrap_content"
 android:layout_width="wrap_content"
 android:layout_below="@id/tx1"
 android:layout_alignParentRight="true"
 android:text="确定"
 />
 <Button
 android:id="@+id/btn2"
 android:layout_height="wrap_content"
 android:layout_width="wrap_content"
 android:layout_below="@id/tx1"
 android:layout_toLeftOf="@id/btn1"
 android:layout_marginRight="30dp"
 android:text="取消"
 />
</RelativeLayout> 

5. 绝对布局

绝对布局通过指定子组件的确切X,Y坐标来确定组件的位置,在Android2.0 API文档中标明该类已经过期,可以使用FrameLayout或者RelativeLayout来代替。所以这里不再详细介绍。

以上就是对 Android 五大布局的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索android
, 布局
, 五大布局
布局详解
android五大布局详解、android五大布局、android的五大布局、android中的五大布局、android布局详解,以便于您获取更多的相关知识。

时间: 2024-10-31 06:30:23

Android 五大布局方式详解_Android的相关文章

Android开发之基本控件和四种布局方式详解_Android

Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A

Android开发之基本控件和四种布局方式详解

Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A

Android开发高仿课程表的布局实例详解_Android

先说下这个demo,这是一个模仿课程表的布局文件,虽然我是个菜鸟,但我还是想留给学习的人一些例子,先看下效果   然后再来看一下我们学校的app 布局分析 先上一张划分好了的布局图 首先整个页面放在一个LinearLayout布局下面,分为上面和下面两个部分,下面一个是显示课程表的详细信息 1:这个没什么好讲的,就是直接一个LinearLayout布局,然后将控件一个TextView用来显示年份,一个View用来当作竖线,一个Spinner用来显示选择周数 2:这个是显示星期几的部件,是我自定义

Android实现动画效果详解_Android

目前Android平台提供了两类动画一类是Tween动画,第二类就是 Frame动画,具体内容介绍请看下文: 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似. 实现动画有两种方式:一种使用XML文件(文件放在res/anim),一种直接代码搞定  1.透明度控制动画效果alpha <!-- 透明度控制动画效果alpha 浮点型值: fromAlpha 动画起始时透明

Android 手势操作编程详解_Android

      手势操作在我们使用智能设备的过程中奉献了不一样的体验.Android开发中必然会进行手势操作方面的编程.那么它的原理是怎样的呢?我们如何进行手势操作编程呢?        手势操作原理        首先,在Android系统中,每一次手势交互都会依照以下顺序执行.        1. 接触接触屏一刹那,触发一个MotionEvent事件.        2. 该事件被OnTouchListener监听,在其onTouch()方法里获得该MotionEvent对象.        3

Android Matrix源码详解_Android

Matrix的数学原理 在Android中,如果你用Matrix进行过图像处理,那么一定知道Matrix这个类.Android中的Matrix是一个3 x 3的矩阵,其内容如下:  Matrix的对图像的处理可分为四类基本变换: Translate           平移变换 Rotate                旋转变换 Scale                  缩放变换 Skew                  错切变换 从字面上理解,矩阵中的MSCALE用于处理缩放变换,MS

Android ListView的OnItemClickListener详解_Android

我们在使用ListView的时候,一般都会为ListView添加一个响应事件android.widget.AdapterView.OnItemClickListener.本文主要在于对OnItemClickListener的position和id参数做详细的解释,我相信有些人在这上面走了些弯路. 先来看一下官方的文档 position The position of the view in the adapter. id The row id of the item that was click

Android DownloadProvider 源码详解_Android

Android DownloadProvider 源码分析: Download的源码编译分为两个部分,一个是DownloadProvider.apk, 一个是DownloadProviderUi.apk. 这两个apk的源码分别位于 packages/providers/DownloadProvider/ui/src packages/providers/DownloadProvider/src 其中,DownloadProvider的部分是下载逻辑的实现,而DownloadProviderUi

Android开发中的几种网络请求方式详解_Android

Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面介绍四种常用网络请求方式,我这边是通过Android单元测试来完成这四种方法的,还不清楚Android的单元测试的同学们请看Android开发技巧总结中的Android单元测试的步骤一文. Java.NET包中的HttpURLConnection类 Get方式: // Get方式请求 public static void requestByGet() throws Exception { String path = "h