Android软件开发之盘点界面五大布局

雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/133

1.线性布局(LinearLayout)

        线性布局的形式可以分为两种,第一种横向线性布局 第二种纵向线性布局,总而言之都是以线性的形式 一个个排列出来的,纯线性布局的缺点是很不方便修改控件的显示位置,所以开发中经常会 以 线性布局与相对布局嵌套的形式设置布局。

如图所示 使用了线性布局的水平方向与垂直方向,从图中可以清晰的看出来所有控件都是按照线性的排列方式显示出来的,这就是线性布局的特点。

设置线性布局为水平方向
android:orientation="horizontal"
设置线性布局为垂直方向
android:orientation="vertical"
设置正比例分配控件范围

android:layout_weight="1"
设置控件显示位置,这里为水平居中
android:gravity="center_horizontal"

在xml中我使用了LinearLayout 嵌套的方式 配置了2个线性布局 一个水平显示 一个垂直显示。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical">
<LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="horizontal"android:gravity="center_horizontal"android:layout_weight="2"><ImageViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/jay"/><TextViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:text="雨松MOMO"android:background="#FF0000"android:textColor="#000000"  android:textSize="18dip"  /><EditTextandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:text="水平方向"/>
</LinearLayout><LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent"android:orientation="vertical"android:layout_weight="1"><TextViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:text="雨松MOMO"android:background="#FF0000"android:textColor="#000000"  android:textSize="18dip"  /><EditTextandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:text="垂直方向"/><Buttonandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:text="雨松MOMO"/><ImageViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/image"/>
</LinearLayout>
</LinearLayout>


2.相对布局(RelativeLayout)


        相对布局是android布局中最为强大的,首先它可以设置的属性是最多了,其次它可以做的事情也是最多的。android手机屏幕的分辨率五花八门所以为了考虑屏幕自适应的情况所以在开发中建议大家都去使用相对布局 它的坐标取值范围都是相对的所以使用它来做自适应屏幕是正确的。


设置距父元素右对齐
android:layout_alignParentRight="true"
设置该控件在id为re_edit_0控件的下方
android:layout_below="@id/re_edit_0"
设置该控件在id为re_image_0控件的左边
android:layout_toLeftOf="@id/re_iamge_0"
设置当前控件与id为name控件的上方对齐
android:layout_alignTop="@id/name"
设置偏移的像素值
android:layout_marginRight="30dip"

<?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="fill_parent"><EditTextandroid:id="@+id/re_edit_0"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="雨松MOMO"android:layout_alignParentRight="true"/><ImageViewandroid:id="@+id/re_iamge_0"android:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/jay"android:layout_below="@id/re_edit_0"android:layout_alignParentRight="true"/><TextViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:background="#FF0000"android:text="努力学习"android:textColor="#000000"  android:textSize="18dip"  android:layout_toLeftOf="@id/re_iamge_0"/><EditTextandroid:id="@+id/re_edit_1"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="雨松MOMO"android:layout_alignParentBottom="true"/><ImageViewandroid:id="@+id/re_iamge_1"android:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/image"android:layout_above="@id/re_edit_1"/><TextViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:background="#FF0000"android:text="努力工作"android:textColor="#000000"  android:textSize="18dip"  android:layout_toRightOf="@id/re_iamge_1"android:layout_above="@id/re_edit_1"/>
</RelativeLayout>

3.帧布局(FrameLayout)

        原理是在控件中绘制任何一个控件都可以被后绘制的控件覆盖,最后绘制的控件会盖住之前的控件。如图所示界面中先绘制的ImageView 然后在绘制的TextView和EditView 所以后者就覆盖在了前者上面。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"><ImageViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/g"/><TextViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:text="雨松MOMO"android:background="#FF0000"android:textColor="#000000"  android:textSize="18dip"  /><ImageViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/image"android:layout_gravity="bottom"/><EditTextandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:text="快乐生活每一天喔"android:layout_gravity="bottom"/>
</FrameLayout>

4.绝对布局(AbsoluteLayout)

       使用绝对布局可以设置任意控件的 在屏幕中 X Y 坐标点,和帧布局一样后绘制的控件会覆盖住之前绘制的控件,笔者不建议大家使用绝对布局还是那句话因为android的手机分辨率五花八门所以使用绝对布局的话在其它分辨率的手机上就无法正常的显示了。

设置控件的显示坐标点

        android:layout_x="50dip"android:layout_y="30dip"
<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent" android:layout_height="fill_parent"><ImageViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/f"android:layout_x="100dip"android:layout_y="50dip"/><TextViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:text="当前坐标点 x = 100dip y = 50 dip"android:background="#FFFFFF"android:textColor="#FF0000"  android:textSize="18dip"  android:layout_x="50dip"android:layout_y="30dip"/><ImageViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/h"android:layout_x="50dip"android:layout_y="300dip"/><TextViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:text="当前坐标点 x = 50dip y = 300 dip"android:background="#FFFFFF"android:textColor="#FF0000"  android:textSize="18dip"  android:layout_x="30dip"android:layout_y="280dip"/>
</AbsoluteLayout>

5.表格布局(TableLayout)
      
       在表格布局中可以设置TableRow 可以设置 表格中每一行显示的内容 以及位置 ,可以设置显示的缩进,对齐的方式。

<?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"><ImageViewandroid:layout_width="wrap_content" android:layout_height="wrap_content"android:src="@drawable/g"android:layout_gravity="center"/><TableRowandroid:layout_width="wrap_content"android:layout_height="fill_parent"android:padding="10dip"><TextViewandroid:text="姓名" android:gravity="left"/><TextViewandroid:text="电话"android:gravity="right"/></TableRow><Viewandroid:layout_height="2dip"android:background="#FFFFFF" /><TableRowandroid:layout_width="wrap_content"android:layout_height="fill_parent"android:padding="10dip"><TextViewandroid:text="雨松" android:gravity="left"/><TextViewandroid:text="15810463139"android:gravity="right"/></TableRow><TableRowandroid:layout_width="wrap_content"android:layout_height="fill_parent"android:padding="10dip"><TextViewandroid:text="小可爱" android:gravity="left"/><TextViewandroid:text="15810463139"android:gravity="right"/></TableRow><TableRowandroid:layout_width="wrap_content"android:layout_height="fill_parent"android:padding="10dip"><TextViewandroid:text="好伙伴" android:gravity="left"/><TextViewandroid:text="15810463139"android:gravity="right"/></TableRow><TableRowandroid:layout_width="wrap_content"android:layout_height="fill_parent"android:padding="10dip"><TextViewandroid:text="姓名" android:gravity="left"/><TextViewandroid:text="性别"android:gravity="right"/></TableRow><Viewandroid:layout_height="2dip"android:background="#FFFFFF" /><TableRowandroid:layout_width="wrap_content"android:layout_height="fill_parent"android:padding="10dip"><TextViewandroid:text="雨松MOMO" android:gravity="left"/><TextViewandroid:text="男"android:gravity="right"/></TableRow><TableRowandroid:layout_width="wrap_content"android:layout_height="fill_parent"android:padding="10dip"><TextViewandroid:text="小可爱" android:gravity="left"/><TextViewandroid:text="女"android:gravity="right"/></TableRow><TableRowandroid:layout_width="wrap_content"android:layout_height="fill_parent"android:padding="10dip"><TextViewandroid:text="好伙伴" android:gravity="left"/><TextViewandroid:text="男"android:gravity="right"/></TableRow></TableLayout>

        Android五大布局的基本使用方法已经介绍完,最后笔者在这里强调一下在开发与学习中建议大家使用相对布局,首先它的方法属性是最强大的其次它基本可以实现其它4大布局的效果,当然这里说的不是全部 有时候还是须要使用其他布局, 所以笔者建议大家开发中以实际情况定夺,以上五种布局可以使用布局嵌套的方式可以做出更好看的更美观的布局。

最后如果你还是觉得我写的不够详细 看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习雨松MOMO希望可以和大家一起进步。

下载地址:
http://www.xuanyusong.com/archives/133

Android软件开发之盘点界面五大布局(十六)相关推荐

  1. Android软件开发之盘点自定义View界面大合集(二)

    Android软件开发之盘点自定义View界面大合集(二) - 雨松MOMO的程序世界 - 51CTO技术博客 雨松MOMO带大家盘点Android 中的自定义View界面的绘制 今天我用自己写的一个 ...

  2. 【软件开发底层知识修炼】二十六 ABI-应用程序二进制接口 学习总结文章目录

    前面学习了ABI的知识,感觉受益良多.对底层与编译器有更加深刻的认识,为此这里将前面写过的关于ABI 的文章给列出来,方便学习与翻阅. [软件开发底层知识修炼]二十一 ABI-应用程序二进制接口一 [ ...

  3. Android软件开发之盘点所有Dialog对话框大合集(一)

    转:http://xys289187120.blog.51cto.com/3361352/657562/ 雨松MOMO带大家盘点Android 中的对话框 今天我用自己写的一个Demo 和大家详细介绍 ...

  4. Android游戏开发Android软件开发【教程三十篇】

    Android软件开发之发送短信与系统短信库解析(三十)  New Android软件开发之获取通讯录联系人信息(二十九)  New Android软件开发之PreferenceActivity中的组 ...

  5. 在Android软件开发教学过程中应当注意的事项总结

    近些年来,为了提升学生就业率和收入水平,某些高校或培训机构将Android软件开发当做一门专业学科.Android学科的主要目标是培养学生快速掌握Android开发基本知识和技能,以便于学生利用掌握的 ...

  6. Android软件开发Log实时查看方式(无需数据线)

    转: Android软件开发Log实时查看方式(无需数据线) 场景 在做Android软件开发的时候,查看实时Log是有效的debug方式之一,如果软件只关联到一部手机,那使用IDE的log查看工具或 ...

  7. Delphi D10.1 移动开发中APP界面基本布局(一)

    Delphi 目前在移动应用开发上已越来越成熟,其高效.简洁的开发更让人喜欢. #说明 案例演示使用Delphi控件完成界面基本布局,其中包括TLayout.TVertScrollBox. TGrid ...

  8. 李开复谏言学生转学Android软件开发

    5月13日消息,随着采用Android系统的谷歌手机.平板电脑等产品逐渐扩大市场占有率,Android平台人才的缺口日益显现.据业内统计,目前国内的3G研发人才缺口有三.四百万,其中Android研发 ...

  9. 面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像许可协议

    英特尔公司面向 Android 软件开发套件(SDK)的 x86 Android* 系统映像的内部评估许可协议 此<内部评估许可协议>(以下简称"协议") 的订立双方为 ...

最新文章

  1. SpringBoot之配置嵌入式Servlet容器
  2. Institute for Manufacturing virtual check in part 1
  3. mysql 8服务配置文件my.ini 不生效_2、mysql的启动选项和配置文件介绍
  4. 起搏器可以用计算机吗,带心脏起搏器能否使用电脑
  5. 转JMeter 利用Jmeter批量数据库插入数据
  6. 闪退没由报错_?秉承工匠精神,3步定位飞桨报错原因,你也来试试?
  7. vue PC项目实现 支付宝支付(跳转至支付界面)
  8. 腾讯云服务器硬盘价格,腾讯云服务器价格表(CPU/内存/带宽/云硬盘收费标准)...
  9. 最新幸运盒子幸运砸金蛋微信盲盒游戏源码
  10. VB如何只读取字符串中的数字部分??
  11. 2010计算机系助学金,计算机系贫困生助学金申请书范文
  12. android即时通讯ui框架,android IM即时通信之聊天界面UI框架
  13. git 代码记录单条合并的方法
  14. 读书笔记专业投机原理
  15. 一篇让你熟练掌握Java常用工具包(全网最全)
  16. ROS Qt环境的搭建及基础知识介绍
  17. Python从网易云音乐、QQ 音乐、酷狗音乐、虾米音乐等搜索和下载歌曲
  18. 我是这样教《雨巷》的
  19. 基于单片机红外遥控LED控制灯亮灭设计毕设课设资料
  20. ZIP炸弹怎样反击扫描器?

热门文章

  1. 经营者思维—赢在战略人力资源管理
  2. 计算机与网络应用word解析,计算机二级word真题:《计算机与网络应用》教材的编排...
  3. 什么是Redis?为什么要用Redis?
  4. vscode搭建Verilog HDL开发环境
  5. 默认选中 input元素默认选中设置
  6. Java 10正式发布,带来了这些新特性
  7. top介绍RES与VIRT区别
  8. Mysql 民族数据库
  9. TIPTOP 4GL——自定义按钮前加图标
  10. SIMT和SIMD之总结篇