通常我们开发的应用程序都是需要具有友好的用户界面,那么Android中提供了哪些布局方式呢?当我们构思好了所需要的各种控件的时候,怎样才能将它们放到Android设备屏幕上正确的位置呢?在Android中,Layout是负责管理控件在屏幕的位置的类,并且提供了几个简单的布局模型,开发人员通过将这几种布局模型的组合可以构建出我们想要的复杂的用户界面。本文中,将会对其一一做简单的介绍,笔者主要写了一个简单的程序,以一个ListView显示五种布局,读者可以点击相应的布局选项查看布局效果。(注:由于内容比较多,加上笔者最近复习考试,所以内容不全,后面慢慢补上)

(主界面程序列出五种基本的布局方式,选择各种布局可以查看效果)

    1、 线性布局

线性布局方式是我们应用程序中最常用的布局方式,主要提供控件水平或者垂直排列的模型,在主界面中点击LinearLayout选项,将会进入线性布局效果显示界面,如下图:

查看该布局界面文件,如下所示:

线性界面布局内容

从上述我们可以看出,通过灵活的组合LinearLayout布局方式,可以很容易的设计出复杂的一些界面。如下图所示:

 2、 坐标布局

坐标布局对于有过.Net Winform开发经验的人员来说应该比较熟悉了,即控件的在父容器上所处的位置主要是有其横纵坐标决定的~在坐标布局中,坐标系如下所示:

对于该布局的示例效果,笔者主要是通过按左右键来控制小人左右移动来讲解的,如下图:

    

     

界面布局内容如下:


<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 
   android:id="@+id/AbsoluteLayout01" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   >
   <TextView android:id="@+id/txtIntro"
     android:text="按左右键控制小人运动"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_x="20dip"
     android:layout_y="20dip">
   </TextView>
   <ImageView android:id="@+id/imgMan"            
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_x="100dip"
      android:layout_y="100dip">
   </ImageView>     
</AbsoluteLayout>

实现控制小人左右走动的动画代码在AbsoluteLayoutActivity.java文件中,内容如下:

控制人物运动代码

从这个例子可以看出,实现帧动画的一种方式就是通过不断的改变ImageView控件的横纵坐标,同时更换背景图片即可。

3、 表格布局

表格布局主要以行列的形式来管理子控件,其中每一行即一个TableRow对象,每个TableRow对象可以添加子控件,并且每加入一个空间即相当于添加了一列。本文中的示例效果如下所示:

表格界面布局文件内容如下:

表格布局内容

展开上述布局内容,最外层是一个垂直布局的LinearLayout的,在其中有四个TableLayout布局,分别展示了四种不同类型的TableLayout布局方式。

 4、 相对布局

5、 帧布局

点击FrameLayout选项,将会进入帧布局效果显示界面,如下图:

上图看上去是不是有点不自然,这是因为上图是通过两个ImageView图片显示控件将两张图片叠在一起显示的。先看下布局界面是怎么编写的:


<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:id="@+id/FrameLayout01" 
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent" 
   >   
   <ImageView
     android:id="@+id/img1"
     android:src="@drawable/shirt"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content">
   </ImageView>
     
   <ImageView 
     android:id="@+id/img2"
     android:paddingLeft="100dip"
     android:paddingTop="18dip"
     android:src="@drawable/head1"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content">   
   </ImageView> 
</FrameLayout>

可见第一个ImageView控件显示的是T-shirt图片,而第二个ImageView控件则是显示我爱罗的头像。需要注意的是,在帧布局中,先添加的图片会被后添加的图片覆盖。

Android开发 第五课 Android的几种布局方式相关推荐

  1. Android开发介绍(基于Android Studio软件)

    Android开发介绍(基于Android Studio软件) 关于Android开发,笔者走过一些弯路,因此今天总计了有关Android开发的一些内容和心得,希望对大家有所帮助.首先来一张安卓开发者 ...

  2. Android开发中怎样调用系统Email发送邮件(多种调用方式)

    在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说Email可以接收Intent并做这些事情 我们都知道,在Android中 ...

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

    Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...

  4. android中资源文件的两种访问方式,在android开发中进行数据存储与访问的多种方式介绍...

    在android开发中进行数据存储与访问的多种方式介绍 更新时间:2013年06月07日 16:24:23   作者: 很多时候我们的软件需要对处理后的数据进行存储或再次访问,Android为数据存储 ...

  5. android设置自动开关机,Android开发之设置开机自动启动的几种方法

    Android开发之设置开机自动启动的几种方法 方法一: android:name=".AutoStartReceiver"为处理开机启动后所做操作的AutoStartReceiv ...

  6. android studio开发工具介绍,Android应用开发之Android开发工具介绍、Android Studio配置...

    本文将带你了解Android应用开发之Android开发工具介绍.Android Studio配置,希望本文对大家学Android有所帮助. 2.1   Android Studio配置 2.1.1 ...

  7. HTML+CSS 五种布局方式

    已知布局元素的高度,写出三栏布局,要求左栏.右栏宽度各为300px,中间自适应. 一.浮动布局 <!DOCTYPE html> <html> <head><m ...

  8. Android开发第二次课 布局方式

    线性布局 线性布局: 控件从左到右排列:水平方式 控件从上到下排列:垂直方式 标签:LinearLayout <LinearLayoutxmlns:android="http://sc ...

  9. 单机搭建Android开发环境(五)

    前文介绍了Android系统开发环境的搭建,本文将简单介绍Android应用开发环境的搭建. 基于Android Studio搭建应用开发环境,相比使用Eclipse简单得多.Android Stud ...

最新文章

  1. 有跳板机时,如何使用sshfs挂载远程服务器文件夹
  2. go 求两个时间相差的天数
  3. Intellij idea 出现错误 error:java: 无效的源发行版: 11解决方法
  4. 《嵌入式C编程:PIC单片机和C编程技术与应用》一第1章C语言概述和程序结构1.1 C源代码...
  5. CCF认证-2015-3-2 数字排序
  6. ORA-01747: user.table.column, table.column 或列说明无效
  7. Impala之DDL、DML
  8. 谐波平衡 matlab,解非线性振动问题的摄动谐波平衡法
  9. 微信小程序详细图文教程10分钟解决
  10. opencv下载百度网盘链接及安装
  11. 密码学三大顶会和信息安全四大顶会网址
  12. 2022年《财富》世界500强企业
  13. 阿里云实现短信验证码登录
  14. 一。回合制游戏 加暴击 掉落 二。柜台商品管理系统
  15. JAVA JSP 餐厅点餐系统源码(点餐系统)jsp点餐系统网上订餐系统在线订餐系统
  16. 视觉和听觉的双重盛宴,富有正能量的B站美食UP主。
  17. android+蓝牙遥控器,一种通过蓝牙遥控安卓设备的方法与流程
  18. element ui tree树节点数据平面化
  19. 基因数据处理88之vcf2omim得到omim和dbSnpId信息
  20. 【问链财经-区块链基础知识系列】 第二十九课 区块链的世界:中国向左 美国向右

热门文章

  1. 华为计算机魔术,华为的魔术表演,超级旗舰将问世,iPhone羡慕不已
  2. 获得淘宝商品评论(问答) API 返回值说明
  3. webpack4引入JQuery的两种方法
  4. 这些网站利用起来,睡前双休时间都能赚点零花钱!
  5. 電腦基本常識-----菜鳥必讀版
  6. 鸿蒙玺绶有用么,细数《诛仙2·末日与曙光》属性尊号
  7. 小米note2 刷android,小米Note2 安卓9.0 原生体验 LineageOS16.0 ROOT
  8. 【LeetCode15】三数之和
  9. 定时器 setTimeout、setInterval详解
  10. 国产编程语言「木兰」实为 Python 套壳,官方已致歉!