大中专实训教材之Android手机阅读器_第1页
大中专实训教材之Android手机阅读器_第2页
大中专实训教材之Android手机阅读器_第3页
大中专实训教材之Android手机阅读器_第4页
大中专实训教材之Android手机阅读器_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Android手机阅读器》

目录

第一章项目四5

1.1功能介绍5

1.1.1功能概述5

1.1.2需求分析5

1.1.3效果演示6

1.2开发平台和技术11

1.3培养目标岗位15

1.4企业实习技能要求15

第二章项目实施(按阶段)15

2.1开发环境搭建15

2.1.1任务说明15

2.1.2知识点简介16

2.1.3教学课时错误!未定义书签。

2.1.4实施步骤18

2.2开发AndroidHelloWorld26

2.2.1彳镑说明26

2.2.2知识点简介26

2.2.3教学课时错误!未定义书签。

2.2.4实施步骤29

2.3手机阅读器主界面开发35

2.3.1彳镑说明35

2.3.2知识点简介35

2.3.3教学课时错误!未定义书签。

2.3.4实施步骤38

2.4添加目录功能开发49

2.4.1任务说明49

2.4.2知识点简介50

2.4.3教学课时错误!未定义书签。

2.4.4实施步骤60

2.5删除目录功能开发74

2.5.1彳甥说明74

2.5.2知识点简介74

2.5.3教学课时74

2.5.4实施步骤77

2.6添加图书功能开发82

2.6.1彳镑说明82

2.6.2知识点简介82

2.6.3教学课时错误!未定义书签。

2.6.4实施步骤82

2.7删除图书功能开发89

2.7.1任务说明89

2.7.2知识点简介89

2.7.3教学课时错误!未定义书签。

2.7.4实施步骤89

2.8阅读txt图书功能开发96

2.8.1任务说明96

2.8.2知识点简介96

2.8.3教学课时错误!未定义书签。

2.8.4实施步骤96

2.9系统配置功能开发108

2.9.1彳镑说明108

2.9.2知识点简介108

2.9.3教学课时108

2.9.4实施步骤108

2.10系统发布与测试115

2.10.1彳镑说明115

2.10.2知识点简介116

2.10.3教学课时错误!未定义书签。

2.10.4实施步骤116

第一章项目介绍

1.1功能介绍

1.1.1功能概述

手机阅读器主要功能为:添加目录,删除目录,添加图书,删除图书,查看txt文件图

书,查看PDF文件图书,查看WORD文件图书,查看RSS订阅新闻。

1.1.2需求分析

添加目录:用户能够对手机上的所有图书进行分类管理,能够添加图书的目录。

删除目录:用户能够对不用的目录进行删除。

添加图书:用户能把在手机上存储的图书地址添加到阅读器的图书目录中。

删除图书:用户能把图书目录中的图书删除,仅仅只是删除列表,并不真正删除图书文件。

查看图书:用户能够打开txt、pdf、doc格式的电子图书,并且能够订阅rss文章

1.1.3效果演示

•Android手机操作系统界面

•手机阅读器主界面

珥2:14AM

•进入阅读器主界面

•添加目录功能界面

BRDe上午9:o2

•添加图书

哥HD❸上午9:03

•阅读图书

疆8D0上午9:03[

阅读器

第一卷第一章字数:3501

?第一章

那天,出去散步是不可能了。其

实,早上我们还在光秃秃的灌木林中

溜达了一个小时,但从午饭时起(无

客造访时,里德太太很早就用午

饭)便刮起了冬日凛冽的寒风,随后

阴云密布,大雨滂沱,室外的活动也

就只能作罢了。

我倒是求之不得。我向来不喜欢远

距离散步,尤其在冷飕飕的下午。试

想,阴冷的薄暮时分回得家来,手脚

都冻僵了,还要受到保姆贝茵的数

落,又自觉体格不如伊丽莎、约翰和

乔治亚娜,心里既难过又惭愧,那情

私至电击次--「,门胃

下一直

•系统设置

留血旗上午9:10[

藏书格

•书籍搜索

•历史记录

1.2开发平台和技术

本项目是基于当今最流行的Android手机操作系统开发的一套在手机上运行,对

word、pdf、txt、rss等电子书进行阅读的软件。

•Android手机操作系统平台简介

Android是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的

手机操作系统。早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc”

后,继续进行对Android系统开发运营,它采用了软件堆层(softwarestack,又名软件

叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各

公司自行开发,部分程序以Java编写。

2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系

统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,

也在平板电脑市场急速扩张。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的

手机G1由HTC生产代工)美国摩托罗拉,SE等,另外还有中国大陆厂商如:华为、中兴、

联想等。

•特性

■应用程序框架支持组件的重用与替换

■Dalvik虚拟机专为移动设备优化

■集成的浏览器基于开源的WebKit弓摩

■优化的图形库包括定制的2D图形库,3D图形库基于OpenGLES1.0(硬

件加速可选)

■SQLite用作结构化的数据存储

■多媒体支持包括常见的音频、视频和静态图像格式(如MPEG4,H.264,MP3,

AAC,AMR,JPG,PNG,GIF)

■GSM电话技术(依赖于硬件)

■蓝牙Bluetooth,EDGE,3G,和WiFi(依赖于硬件)

■照相机,GPS,指南针,和加速度计(accelerometer)(依赖于硬件)

■丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse

集成开发环境插件

•Android应用程序

Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,

SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA

语言编写的。

•Android应用程序框架

开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简

化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以

使用其所发布的功能块(不过得遵循框架的安全性限制\同样,该应用程序重用机制也使

用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,其中包括;

•丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(lists),网

格(grids),文本框(textboxes),按钮(buttons),甚至可嵌入的web浏览器。

•内容提供器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如

联系人数据库),或者共享它们自己的数据

•资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,

和布局文件(layoutfilesX

•通知管理器(NotificationManager)使得应用程序可以在状态栏中显示自定义的

提ZE信息。

•活动管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航

回退功能。

•Android程序库

Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通

过Android应用程序框架为开发者提供服务。以下是一些核心库:

•系统C库-一个从BSD继承来的标准C系统函数库(libc),它是专门为基于

embeddedlinux的设备定制的。

•媒体库-基于PacketvideoOpenCORE;该库支持多种常用的音频、视频格式回放

和录制,同时支持静态图像文件。编码格式包括MPEG4,H.264,MP3,AAC,AMR,JPG,

PNGo

•SurfacSurfaceManager-对显示子系统的管理,并且为多个应用程序提供了2D

和3D图层的无缝融合。

.LibWebCore-一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌

入的web视图。

•SGL-底层的2D图形引擎

•3Dlibraries-基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果

可用)或者使用高度优化的3D软加速。

•FreeType-位图(bitmap)和矢量(vector)字体显示。

•SQLite-一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。

•Android运行库

Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。

每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟

机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。Dalvik虚拟机执行

(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于

寄存器的所有的类都经由JAVA编译器编译然后通过SDK中的”dx"工具转化成.dex格

式由虚拟机执行。

Dalvik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。

•Linux内核

Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程管理,网

络协议栈和驱动模型。

Linux内核也同时作为硬件和软件栈之间的抽象层。

•Android系统构架

APPLICATIONS

HomeConacttPhoneBrowser

APPLICATIONFRAMEWORK

WrdowContentViewNotification

Actmty巾n厩r.说对ProvidersS/scemManager

小加呻”盟器盟潞吟XHPP^e

LIBRARIESANDROIDRUNTIME

SurfaceMroger—MediaSQLiteCoreLibraries

Framework

OpenGL|ESFreelypeWfebKic

Machi"

SGISSLlibc

LINUXKERNEL

DisplayGwnoraDnverBlueioixhFlashMemoryBrdcr(IPC)

DnverDnverDnverDnver

AudioPower

USBDriverKeypadDriverWiFiDriver

DriversManajjemenc

1.3培养目标岗位

手机软件开发工程师:能熟练运用Eclipse进行Android手机软件开发;

手机软件测试工程师:能熟练对Android手机软件测试;

1.4企业实习技能要求

•数据结构:掌握数据结构基础知识

•计算机算法:掌握常用计算机算法

•SQL基础:掌握SQL语言

•JAVA语言基础:熟悉JAVA语言,熟知JAVA语言编程通用规范,了解JDK

•ECLIPSE开发基础:熟悉Eclipse开发环境

第二章项目实施(按阶段)

2.1开发环境搭建

2.1.1任务说明

搭建Android手机开发环境,包括Android手机SDK下载,安装,配置。JDK环境

配置,Eclipse开发环境搭建,软件清单如下:

软件版本

Eclipse3.6(HELIOS)

AndroidSDK2.2+

ADT10.0.0

SQLiteDeveloper3.4.4

2.1.2知识点简介

•JDK

JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发员的产品。自从Java

推出以来,JDK已经成为使用最广泛的JavaSDK.JDK是整个Java的核心,包括了Java

运行环境,Java工具WJava基础的类库。JDK是学好Java的第一步。而专门运行在x86

平台的Jrocket在服务端运行效率也要比SunJDK好很多。从SUN的JDK5.0开始提供了

泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。

•Eclipse

Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是

一个框架和一黜艮务,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标

准的插件集,包括Java开发工具(JavaDevelopmentTools,JDTX

Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE开

发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会

(EclipseFoundation)管理。2003年,Eclipse3.0选择OSGi服务平台规范为运行时

架构。2007年6月,稳定版3.3发布。2008年6月发布代号为Ganymede的3.4版。

2009年7月发布代号为GALILEO的3.5版。2010年6月发布代号为Helios的3.6版。

本项目使用Helios版本作为IDE.

eclipse-galileo

•AndroidSDK

SDK:(softwaredevelopmentkit)软件开发工具包。被软件开发工程师用于为特定

的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。因此!

AndroidSDk指的既是Android专属的软件开发工具包。

•ADT

ADT为Android开发工具(AndroidDevelopmentTools)简称,是在强大的、集成

的环境EclipseIDE中构建Android应用程序插件。

ADT扩展了Eclipse的功能,让您快速建立新的Android项目,创建一个应用程序的

用户界面,加上Android框架的API组件、调试应用程序使用AndroidSDK工具,以便

APK分发给应用程序。

首先,强烈建议尽快开始使用Eclipse开发插件ADT。随着项目设置我们将提供指导、

以及工具的集成和自定义XML编辑器并在ADT给你的一个令人难以置信的开发Android

应用环境。

2.1.3实施步骤

♦JDK的安装

1)首先下载JDK的最新版本。可以去

/javase/downloads/index.jsp下载最新版本JDK1.6。一切

下载后选择安装路径,例如我选择安装在"c:\ProgramFiles\Java\jdkl.6.0_02",

安装到计算机上,这可能会花费数分钟时间,这与系统性能有关。

2)安装好后进行配置。右击"我的电脑",打开"属性",选择"高级"里面的"环

境变量"。在新打开的界面中系统变量需要设置三个属性。在没安装过JDK的电

脑中path属性是本来存在的。

启动和故障恢复

系统启动,系统失败和调试信息

设置(T)

环境变量国)错误报告国)

[般][取消]|应用@|

1)点击"新建",然后变量名写上"java_home”顾名思义就是java的安装路径,

然后在变量值写上刚才的安装路径"c:\ProgramFiles\Java\jdkl.6.0_02"o

系统属性〔国一_g

常规「计算机名I硬件一赢厂系统还原j自动更新1远程

环境变量I心’区「

Administrator的用户变量也)

系统变量⑤)

变量值

java__homeC:\ProgramFiles\Java\jdkl.6.0_02

2)在系统变量里找到path,点击编辑。path的含义就是系统在任何路径下都可以

识别java命令。添加变量值";%java_home%\bin;%java_home%\jre\bin"。

(其中"%java_home%”的意思是刚才设置的java_home的值)

’系统厘性〔用I?

:常规[计算机名|硬件高级系统还原j自动更新i远程

?环境变量〔曾「笈J

Administrator的用户变量也)

系统变量⑤)

变量值~

Pa♦bu•\WTwnnws\5+仙”r•\WTwnnws-

3)点击“新建",然后变量名写上”classpath”,该变量的含义为java加载类(bin

orlib)的路径,只有类在classpath中Java命令才能识别。其值为

°.;%java_home%\lib;%java_home%\lib\tools.jar"(要加圆点.表示当前路

径)。

系统属性I直二

।常规।计算机名।硬件函一।系统还原।自动更新।远程]

「环境变量⑵区

Administrator的用户变量包)

系统变量⑤)

变量值二

classpath.;C:\ProgramFiles\Java\jdkl.6国

3)验证JDK1.6安装是否成功。点击"开始"->"运行",输入"cmd",进入命令行

界面,打入"java-version",如果安装成功,则系统显示javaversion

"1.6.0_02"(不同版本号则不同)

C:\DocumentsandSettings\Adninistrator>jaua-uersion

jauauersionM1.6.0_02u

Jaua<TM>SERuntimeEnvironment<build1.6.0_02-b05>

JauaHotSpot<TM>ClientUM<build1.6.0_02-b05,nixedmode.sharing>

♦Eclipse的安装

1)至!I下载eclipse,可以选择:eclipse-jee-helios-SR2-win32,下

载完成后,只需要将下载的压缩文件eclipse-jee-helios-SR2-win32.zip解压到指

定位置,例如d:\Eclipse即可完成安装.安装完成后,eclipse文件夹中的目录结构如

图:

mconfiguration

'features

i-^plugins

i^lreadme

画eclipseproduct

Seclipse,exe

eclipse,ini

商epl-vlO.html

司notice.html

startup.jar

2)双击安装目录下的eclipse.exe文件,即可启动Eclipse,在启动画面消失后,屏幕将显

示一个对话框,提示用户选择工作空间的目录位置,这个目录用于存放用户创建的项

目文档(你自己选一个地方吧),最后进入Eclipse的工作环境.如图:

♦AndroidSDK的安装

准确来说下载的不是SDK而是SDK下载安装器,因为下载下来的并没SDK,而需要

连接到官方网址下载所需的SDK,本项目使用2.2版本的SDK,下载

android-sdk-windows-23rar压缩包,大约564MO解压即可。

1)运行AndroidSDK下载安装器SDKSetup.exe

2)配置和下载SDK

选择AvailablePackages然后选择你要安装的sdK包,最后按InstallSelected

按钮进行安装。

其实一般启动SDKSetup,都会自动检查更新包,弹出类似如下界面。根据你的要

求自行选择所需安装包,安装即可。其功能同上图。

安装快慢完全取决你网速和GoogleAndroid的带宽。全部下载下来大约1G多。

♦在Eclipse中配置ADT,本项目使用ADT-10.0.0版本。

1)选择Eclipse菜单Help->InstallNewSoftware...->选择选项卡上的Available

Software,点击右侧按钮"Add,输入

/android/eclipse/,如果不支持https可有输入

/android/eclipse/

2)选择所有安装包,然后NextNext安装向导提示进行下载并安装。

3)安装完后,系统会提示重启Eclipse。然后在进入图2.7点击Archive按钮选择

ADT-0.9.7.zip即可其他步骤类似上面。在此不再详述。

4)Eclipse重启后,选择Window>Preferences...,在打开的属性框,选择Android,

在SDKlocation中输入你的AndroidSDK所在的目录,然后按Apply按钮即

可看到你安装SDk包,如下图

5)选择window-AndroidSDKandAVDManager在弹出的AndroidSDKand

AVDManager对话框,选择VirtualDevices,按new按钮创建虚拟设备

今CreatenewAndroidVirtualDevice(AVD)

选择SDK

SD卡(内存卡)

大小

显示屏大小

6)至此开发环境配置完成。

2.2开发AndroidHelloWorld程序

2.2.1任务说明

基于已搭建完成的Android开发环境,完成HelloWorld程序的开发。

2.2.2知识点简介

♦Android的项目结构。

一个Android项目会包括java源文件,资源文件如图片,基于xml的布局文件等,第

三方的jar包等。这些文件最终会被编译成一个.apk文件即Android应用程序可执行文件

Androidpackagefile,.apk文件可以安装在模拟设备或者真机上。

看一下前一篇我们创建的HelloAndroid项目的结构图:

/提HelloAndroid

/谡src

,田com.benjamin.helloandroid

0mHelloAndroid.java

J当gen[GeneratedJavaFiles]

<田com.benjamin.helloandroid

t>团R.java

>9Android2.1

assets

,四res

»&drawable-hdpi

>&drawable-ldpi

>&drawable-mdpi

<0layout

因main.xml

/0values

.strings.xml

@AndroidManifestxml

[ildefaultproperties

可以看到Android项目主要包括:

目录说明

src/存放java源文件

gen/存放由Android编译工具生成的java源文件,这些文件不

能手动修改。如R.java就定义了一些常量,这些常量是对

资源文件的索引,以便我们很方便的引用这些资源文件

assets/存放一些静态文件并将会被一起打包成.apk文件

res/存放资源文件

res/drawable存放图片如PNG,JPEG等

res/drawable-ldpi/存放低分辨率的图片

res/drawable-mdpi/存放中等分辨率的图片

res/drawable-hdpi/存放高分辨率的图片

res/layout存放基于xml的布局文件

res/menu存放基于xml的菜单文件

res/values存放字符串等资源文件,如多语言的文件

AndroidManifest.xml是一个当前应用程序的组件清单,它列出了应用程序包含的

各种activities,services,权限等,下面看一下

HelloAndroid项目中的AndroidManifest.xml文件

<?xmlversion=M1.0,'encoding='*utf-8**?>

02<manifestxmlns:android=Mhttp://schemas./apk/res/androidM

03package=Mcotn.benjamin.helloandroid**

04android:versionCode=wl"

android:versionF,lame=',1.0M>

(applicationandroid:icons'^drawable/icon',android:label="(0string/app_name">

Octivityandroid:name='*.HelloAndroid'*

android:label="@string/app__name,*>

<intent-filter>

<actionandroid:name=uandroid.intent.action.MAIN'1/>

<categoryandroid:name=**ent.category.LAUNCHER'*/>

</intent-filter>

</activity>

</application>

</manifest>

可以看到根元素manifest的定义,首先声明了命名空间,指定了包名。

android:versionCode是Android应用程序的版本号,一个整形的数字,在应用程序升级

的时候会进行比较是否决定要更新。android:versionName是你自己为你应用程序定义一

个版本代号,不必一定是数字,如〃Tiger2000〃,"SystemX"等。如果你的应用程序要

发布在AndroidMarket的话,都需要指定android:versionCode和

android:versionName这两项。

android:icon表示你的应用程序显示的图标,”@drawable/icon〃表示读取

res/drawable下面icon这个图片,androidJabel表示应用程序的名称,

"@string/app_namen表示读取res/values/strings.xml中app_name的值。activity的

两个属性androidmame和androidJabel分别表示这个activity的类名,activity的显示

名称。intent-filter表示在什么条件下这个activity会显示。

2.2.3实施步骤

♦Hell。World项目开发步骤

1)新建项目

打开Eclipse选择File>New>Project>AndroidProject

2)异常提示的解决

创建后出现异常,主要某些jar包找不到,解决办法:project>properties,在order

AndExport选项中选中Android2.2按确定即可!

3)代码编辑

图3.5代码编辑

4)运行和测试

运行,右键项目文件夹选择RunAs>AdroidApplication运行,注意:菜单绿色的运

行按钮可能找不到AdroidApplication,不知道是否是ADT的Bug。

MeEditRefactorRunSourceNavigateSearchProjectWindowHelp

n-自豆▼《第(3-9右。-»丁3DOMS图J・va

:PackageEjbrterarchy

0

(

法OvtiirwE

,I,0<•7•"

3com.exampl«.android

“importdecUrctiont

0ApiDemos

•*ofiCreate(Bundle)

l»'•

.▼・0

RunAs—1AndroKlAppticationlocationType

DebugAsjJ2AndfoldJUnAlei^

ProfileAsW1JavaAUPMAh-Shift-X,A

Validate丁4JavaAppGcationAlt+Shift+X.J

TeamJi5JUnitTe«tAh,S帅+X.T

Comp«r»With

RunConfigurations.,»dro»dSOKCofrtentLoader

RestorefromLocalHistory...

AndroidTools

Configur*

5)运行效果图如下,运行可能有的慢

留加❸8:19AM

ApiDemos

HelloWorld,ApiDemos!

2.3手机阅读器主界面开发

2.3.1任务说明

完成手机阅读器主界面开发

2.3.2知识点简介

♦Android应用程序布局之线性布局(LinearLayout)

线性布局:是一个ViewGroup以线性方向显示它的子视图(view)元素,即垂直地或水平

地。之前我们的HelloWorld!程序中view的布局方式就是线性布局的,一定不陌生!如

res/layour/main.xml:

<?xmlversion="1.0Hencoding=nutf-8n?>

<LinearLayoutxmlns:android="/apk/res/android"

android:layout_width="HII_parent”

android:layout_height="fill_parentn

androidzorientations^horizontarSc!-haveaneyeon!->

<Buttonandroid:id=M@+id/button1"

android:layout_width="wrap_content"

android:layout_height=',wrap_contentn

android:text="Hello,IamaButton1"

android:layout_weight=n1"/>

<Buttonandroid:id=H@+id/button2H

android:layout_width="wrap_contentn

android:layout_height="wrap_contentM

android:text="Hello,IamaButton2"

android:layout_weight=*'1"/>

<Buttonandroid:id="@+id/button3H

android:layout_width="wrap_contentH

android:layout_height=',wrap_contentH

android:text=nHello,IamaButton3"

android:layout__weight=n1"/>

<Buttonandroid:id="@+id/button4M

android:layout_width="wrap_content”

android:layout_height="wrap_content"

android:text="Hello,IamaButton4"

android:layout_weight=n1"/>

<Buttonandroid:id=',@+id/button5n

android:layout_width="wrap_contentn

android:layout_height=nwrap_contenr

android:text="Hello,IamaButton5"

android:layout_weight=*'1”/>

</LinearLayout>

从上面可以看出根LinearLayout视图组(ViewGroup)包含5个Button,它的子元

素是以线性方式(horizontal,水平的)布局,运行效果如下图所示:

图2、线性布局(水平或者说是横向)

如果你在androi&orientation="horizontal”设置为vertical,则是是垂直或者说是

纵向的,如下图所示:

晴5554:avd_apiLevel7

图3、线性布局(垂直或者说是纵向)

layout_weight这个属性很关键,如果你没有显示设置它,它默认为0。把上面布局文

件(水平显示的那个)中的这个属性都去掉,运行会得出如下结果:

图4>layout_weight属性

没有了这个属性,我们本来定义的5个Button运行后却只显示了2个Button,为什

么呢??

"weight"顾名思义是权重的意思,layout_weight用于给一个线性布局中的诸多视图

的重要程度赋值。所有的视图都有一个layout_weight值,默认为零,意思是需要显示多

大的视图就占据多大的屏幕空间。这就不难解释为什么会造成上面的情况了:

Buttonl-Button5都设置"Tlayout_height和layout_width属性为wrap_content即包

住文字内容,他们都没有设置layout_weight属性,即默认为0.这样Buttonl和Button2

根据需要的内容占据了整个屏幕,别的就显示不了啦!

若赋一个高于零的值,则将父视图中的可用空间分割,分割大小具体取决于每一个视图

的layout_weight值以及该值在当前屏幕布局的整体layout_weight值和在其它视图屏幕

布局的layout_weight值中所占的比率而定。举个例子:比如说我们在水平方向上有一个

文本标签和两个文本编辑元素。该文本标签并无指定layout_weight值,所以它将占据需

要提供的最少空间。如果两个文本编辑元素每T的layout_weight值都设置为1,则两

者平分在父视图布局剩余的宽度

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论