第三章 界面UI的基石—UI布局(4)

3.2.5表单布局(TableLayout)

TableLayout,即表单布局,以行和列的形式管理控件。每行为一个TableRow对象,也可以为一个View对象。当为View对象时,该对象将横跨该行所有列。

同样的,我们也以一个简单的例子来加以说明,看完例子之后相信大家对TableLayout的应用会有一个比较全面的了解。


<?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="wrap_content"

android:stretchColumns="0,1,2"

android:shrinkColumns="1,2" >

<TextView

android:text="TableLayout"

android:gravity="center"/>

<TableRow>

<TextView

android:layout_column="1"

android:text="姓名"

android:gravity="center"/>

<TextView

android:text="性别"

android:gravity="center"/>

</TableRow>

<TableRow>

<TextView

android:text=" 1 "

android:gravity="center"/>

<TextView

android:text="zhangsan"

android:gravity="left"/>

<TextView

android:text="男"

android:gravity="center"/>

</TableRow>

<TableRow>

<TextView

android:text=" 2 "

android:gravity="center"/>

<TextView

android:text="lilei"

android:gravity="left"/>

<TextView

android:text="男"

android:gravity="center"/>

</TableRow>

<TableRow>

<TextView

android:text="3"

android:gravity="center"/>

<TextView

android:text="hanmeimei"

android:gravity="left"/>

<TextView

android:text="女"

android:gravity="center"/>

</TableRow>

</TableLayout>

效果图如图3-8所示。

图3-8TableLayout表单布局

在TableLayout布局中,有几个属性是比较常用的,大家应该熟练掌握(下标都是从0开始):

1)android:stretchColumns="0,1,2",设置1、2、3列为可伸展列,设置完后这些列会将剩余的空白填满;

2)android:shrinkColumns="1,2",设置2、3列为可收缩列,设置完后这些列会自动延伸填充可用部分;

3)android:collapse="0",设置第1列隐藏。

3.2.6绝对布局(AbsoluteLayout)

AbsoluteLayout,即绝对布局,又称坐标布局,在布局上灵活性较大,也较复杂。另外由于各种手机屏幕尺寸的差异,给我们的开发也带来较多困难。

同样的,我们也举一个简单的例子来帮助大家掌握。


<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout

xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"

android:layout_height="wrap_content">

<ImageView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/ball"

android:layout_x="45px"

android:layout_y="60px"/>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="absolutelayout"

android:textColor="@android:color/black"

android:layout_x="100px"

android:layout_y="175px"/>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="absolutelayout"

android:textColor="@android:color/black"

android:layout_x="120px"

android:layout_y="195px"/>

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="absolutelayout"

android:textColor="@android:color/black"

android:layout_x="140px"

android:layout_y="215px"/>

</AbsoluteLayout>

效果图如图3-9所示。

图3-9AbsoluteLayout绝对布局

使用这种布局时,我们要计算好每一个视图的大小和位置,然后再通过android:layout_x和android:layout_y属性来将它们的位置定好。


经验分享:

由于现在的Android设备的屏幕分辨率和尺寸有着很大的差异,所以一般情况下,开发过程中已经不会用到绝对布局了,完全可以使用其它几种布局方式来实现。

如果的确需要使用绝对布局时,有以下几点需要我们注意:

1)坐标原点为屏幕左上角;

2)添加视图时,要精确的计算每个视图的像素大小,最好先在纸上画草图,并将所有元素的像素定位计算好。

时间: 2024-11-10 08:08:28

第三章 界面UI的基石—UI布局(4)的相关文章

第三章 界面UI的基石—UI布局(1)

第三章界面UI的基石-UI布局 上一章我们一起学习了Android中的常用组件及一些UI编程的技术.在此基础上,我们就可以将这些组件有效的组织起来,构成一个美观.合理的界面. 在本章,我们先来详细说明Android中UI的几种布局,通过这几种布局就能将组件有效的组合到一起.然后说明在Android开发中如何应用样式和主题,通过样式和主题,可以预定义一系列的属性值,使整个应用程序形成统一的显示风格. 3.1用户界面的基本单元-View视图 在Android SDK中,View(视图)类是视图类的一

[看书][CSS精粹(第2版)]第三章 CSS和图像 & HTML网页布局

本章主要讲述作为背景图像方面的技巧. 1.边框(添加边框样式.去除边框): 2.为页面设置背景图像,位置设定,固定背景图像: 3.为任意元素设置背景图像: 4.文字放在图像的上面(作为背景图像): 5.为文档添加多个背景图像(本例利用html和body元素产生多重背景图像的效果): 6.在页面中使用透明效果(使用PNG格式图像). 利用网络搜索补充学习了padding的4个方向顺序(上右下左 顺时针),流式布局(看网上的解释结合书里的描述,大概是指页内布局元素采用百分数指定位置和大小). [个人

第三章 界面UI的基石—UI布局(2)

3.2百花齐放-各种Layout布局 3.2.1Layout布局的简单介绍 一般的,一个Android视图中会有很多的控件.为了界面的合理.美观,我们需要让它们按照我们设计好的思路排列在界面上,那么,我们就需要容器来存放这些控件,并控制它们的位置排列,就像HTML中的div.table一样,Android布局也起到了同样的作用. Android布局有很多种,它们各有各的特点,分别应用在不同的场合,而且可以嵌套使用.我们要根据我们的界面设计选择合适的布局,可能有些时候不同的布局可以达到同样的效果,

第三章 界面UI的基石—UI布局(3)

3.2.4框架布局(FrameLayout) FrameLayout是五大布局中最简单的一个布局,也称为层布局或者是帧布局.在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,层叠式排列.此布局无法控制子控件的大小和位置,但是子控件自身可以控件其大小和位置.后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的).此布局通常用于游戏或者处理一些画廊程序. 我们也以一个简单的例子来说明. <?x

第三章 界面UI的基石—UI布局(5)

3.3样式(Style)和主题(Theme)的使用 3.3.1样式(Style)的使用 不管是应用开发还是游戏开发,我们开发出来的产品,大部分的时候还是要让更多的人来使用的.因此,除了功能上的完善之外,布局上的合理而美观也是我们需要考虑的问题.Style和Theme的设计就是提升用户体验的关键之一. Style和Theme都是为了改变样式,但是二者又略有区别: 1)Style是针对窗体元素级别的,改变指定控件或者Layout的样式. 2)Theme是是针对窗体级别的,改变窗体样式. 它们的使用是

Android界面编程——Android高级UI组件(三)

Android界面编程 Android高级UI组件 2.4.1适配器组件 适配器的作用 适配器充当适配器控件和该视图数据之间的桥梁.适配器提供访问的数据项,并负责产生数据组中的每个项的视图. 常用的适配器 BaseAdapter:抽象类,具有较高的灵活性. ArrayAdapter:最为简单,智能展示一行文字. SimpleAdapter:有较好的扩充性,可以自定义出各种效果. SimpleCursorAdapter:主要用于操作数据库. 常用的适配器控制 适配器控件扩展自ViewAdapter

第二章 吸引你的眼球—UI编程(1)

第二章 吸引你的眼球-UI编程 学习Android应用程序的开发技术,除了先要熟悉相关工具以外,最直接的,就是学习如何使用各种UI组件.我们开发的应用程序,一般都会包含一组用户可见的界面,而这些界面就是由一个个的AndroidUI组件组成的.我们在学习界面开发技术的过程中,首先就要熟悉这些组件,然后才能将它们有效的组织起来,构成一个美观.合理的界面. 本章会先详细讲解一些常用的UI组件,及如何自定义组件,然后会说明一些其它常用的UI编程技术. 2.1 UI基础-常用UI组件 Android的组件

Android教材 | 第三章 Android界面事件处理(二)—— 杰瑞教育原创教材试读

 编者按 JRedu 杰瑞教育原创系列教材将于年后与大家正式见面.为更好的借鉴读者意见,我们将会陆续地在博客园推出一系列教材试读.我们也热忱的欢迎广大博友与我们互动,提出宝贵意见. 本篇博客将推出教材第三章第二部分的试读(传送门:第一部分),请大家继续提出宝贵意见,我们也将为积极互动的博友,免费提供我们的原创教材以及更多福利,也欢迎大家加入最下方QQ群与我们交流,谢谢大家! 3.5 系统设置事件处理 3.5.1onConfigurationChanged响应事件 在App开发过程中,有时候需要获

Android异步处理系列文章四篇之一使用Thread+Handler实现非UI线程更新UI界面

目录: Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Looper+MessageQueue深入详解Android异步处理四:AsyncTask的实现原理 Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面 概述:每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainTh