Android项目驱动教程_第1页
Android项目驱动教程_第2页
Android项目驱动教程_第3页
Android项目驱动教程_第4页
Android项目驱动教程_第5页
已阅读5页,还剩515页未读 继续免费阅读

下载本文档

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

文档简介

Android项目驱动教程(jiàochéng)

第一讲共五百二十页教学要求讲课+上机=90学时讲课:50个学时上机:40个学时基本练习+完整项目每一章知识的实训项目期末(qīmò)项目成绩平时成绩(40%):平时练习+考勤考试成绩(60%):闭卷(现场编写完成一个项目)课程(kèchéng)导论共五百二十页课程(kèchéng)导论背景知识(zhīshi):移动应用开发技术共五百二十页移动(yídòng)通信技术背景2014年底,我国手机用户数已经达到了12.86亿户,移动电话用户普及率达94.5部/百人现有移动通信网络分2G、3G、4G三种,4G是第四代移动电话行动通信标准的简称,该技术集3G与WLAN于一体,并能够快速传输数据、高质量的音频、视频和图像等。4G理论(lǐlùn)上能够以100Mbps以上的速度下载,比4兆的家用宽带ADSL快25倍,并能够满足几乎所有用户对于无线服务的要求除了支持传统的通信业务之外,4G的无线高速业务也将会在移动终端上产生新的应用,如流媒体点播应用,与物联网、云计算和大数据的综合应用等课程导论共五百二十页移动(yídòng)应用程序的平台(一)JavaME:是Java2,MicroEdition的缩写,于1999年6月在JavaOne开发者大会上公布,它和标准版的J2SE、企业版的J2EE一起构成Java技术的三大版本。Symbian:Symbian公司成立于1998年6月,是由爱立信、摩托罗拉、诺基亚等公司共同持股组成(zǔchénɡ)的合资公司。2008年6月Symbian公司被诺基亚全资收购,成为其旗下公司。Symbian曾经是手机领域中应用范围最广的操作系统。Symbian主要支持的开发语言为C++和Java。WindowsPhone:早期版本是微软公司在2003年6月发布的WindowsMobile,最新版本是Windows10Mobile。WindowsPhone主要支持的开发语言为C#、C++、C和VB。课程导论共五百二十页移动(yídòng)应用程序的平台(二)iPhone:由苹果公司在2007年1月上宣布推出。iPhone使用了众多增强用户体验的领先技术,多触点式触摸屏技术允许用户同时通过多个触点进行操作,基于传感器的隐式输入技术提高了手机的智能水平,全新用户界面设计技术提高了手机使用的易用性,手机应用商店提供了源源不断的实用程序。iPhone将原来(yuánlái)普通的手机电话变成一个潮流时尚且功能强大的随身工具,引起了手机设计领域的一次新变革。iPhone主要支持的开发语言为Objective-C、C、C++、JavaScript。课程导论共五百二十页移动(yídòng)应用程序的平台(三)Android:是Google公司于2007年11月宣布(xuānbù)的基于Linux平台的开源手机操作系统,该平台由操作系统、中间件、用户界面和应用软件组成。Android产品线较为丰富,覆盖到商务、时尚、娱乐、中低端市场等各种人群。Android的优势在于对第三方软件完全开放,免费向开发人员提供,而且集成了大量的Google应用:Google地图Gmail邮箱等Android主要支持的开发语言为Java和C++课程导论共五百二十页手机(shǒujī)应用商店手机应用商店为程序开发者提供(tígōng)了更大的平台,程序开发者可将手机应用程序发布到网站上,分享自己的作品,通过用户下载程序来和服务商按一定的比例进行收益分配,此举大大激发了程序开发者的积极性。课程导论共五百二十页课程(kèchéng)导论典型(diǎnxíng)移动应用案例术共五百二十页移动(yídòng)办公移动(yídòng)办公是指办公人员可以随时随地处理与业务有关的事情。课程导论

共五百二十页个人(gèrén)应用针对手机自带软件功能(gōngnéng)的不足,设计开发出新的功能(gōngnéng),为日常生活中的“衣、食、住、行”提供便利,担任智能化助手的角色。课程导论

共五百二十页手机游戏手机游戏的优势是提供娱乐休闲,在坐车、等人的空虚时间可以(kěyǐ)打发时间。课程(kèchéng)导论

共五百二十页课程(kèchéng)导论安装(ānzhuāng)SunJDK共五百二十页任务分析本次任务要求完成JDK的下载、安装和配置。要完成本次任务,需要思考如下几个问题(wèntí):JDK是什么软件,对于本项目有何作用?从何处获得合适的JDK?JDK对电脑硬件和操作系统的安装要求?如何安装JDK?如何配置JDK?课程(kèchéng)导论共五百二十页JDKJDK(JavaDevelopmentKit)就是为Java开发者提供的一组开发工具包,包括了Java运行环境(JRE,JavaRuntimeEnvironment),一组Java工具和Java标准API类库主流的JDK由Sun公司开发(注:2009年Sun公司已经被著名(zhùmíng)的数据库公司Oracle收购)。一些公司和组织也先后推出自己的JDK,例如IBMJDK、GNUJDK。JDK有适合于Windows、Linux、Solaris等不同操作系统的版本。课程(kèchéng)导论共五百二十页Java运行(yùnxíng)环境包含一个Java虚拟机(JVM,JavaVirtualMachine)和运行Java程序所需类库Java虚拟机的主要作用是解释字节码(bytecode),实现Java程序的跨平台。Java标准API类库:API(ApplicationProgrammingInterface)又称应用程序编程接口,通过提供一些预先定义的函数,达到简化开发人员工作的目的。开发人员无需访问源码或理解内部工作机制的细节,通过调用API就可以实现程序的特定功能(gōngnéng)。编程语言或二次开发的软硬件环境一般会提供相应的API。JRE一般是包含在JDK中,也可以独立安装JRE。课程导论共五百二十页任务(rènwu)实施(一)下载(xiàzǎi)SunJDK:课程导论共五百二十页任务(rènwu)实施(二)安装JDK软件(ruǎnjiàn):双击上一步所下载的JDK文件【jdk-6u21-windows-i586.exe】课程导论共五百二十页任务(rènwu)实施(三)配置环境变量:主要(zhǔyào)是需要配置两个环境变量,一个是PATH,另外一个是CLASSPATHPATH的作用是表示JDK命令的所在路径(安装JDK的bin目录)。CLASSPATH的作用是表示JDK类库的所在路径(安装JDK的lib目录)。课程导论共五百二十页课程(kèchéng)导论安装(ānzhuāng)Android开发环境共五百二十页任务分析本次任务是要求完成Android开发软件的下载(xiàzǎi)、安装和配置。要完成本次任务,需要思考如下几个问题:Eclipse和AndroidSDK是什么软件,与任务一的JDK软件有何关系,对Android项目开发有何作用?从何处获得正确的Android开发软件?Android开发软件对电脑的硬件和操作系统的安装要求?如何安装Android开发软件?如何配置Android开发软件?课程(kèchéng)导论共五百二十页IDE集成开发环境(IDE,IntegratedDevelopmentEnvironment)旨在提供一个综合的图形用户开发环境,方便程序员进行软件开发。一般集成了程序生成器、代码(dàimǎ)编辑器、编译器、调试器和发布器等,具有代码(dàimǎ)编写、管理、分析、编译、调试和发布等功能。著名的IDE开发环境有微软的VisualStudio.NET,Boland的JBuilder等。开发Java程序常用的IDE工具有Eclipse、MyEclipse、NetBeans。Google公司在2013年5月推出了针对Android的IDE开发工具:AndroidStudio课程(kèchéng)导论共五百二十页EclipseEclipse最初是由IBM公司开发,2001年捐献给开源社区,现由Eclipse基金会管理。Eclipse所提供的项目致力于建立开放的开发平台(píngtái),具有可扩展性的框架、工具和运行环境的建立、发布以及软件生命周期的管理。Eclipse社区提供了适合J2EE、Java、JavaME、C/C++、JavaScript等语言的IDE开发工具。Eclipse很重要的一个特色是通过插件来扩展开发平台的功能。Eclipse本身只是一个框架平台,运行在Eclipse平台上的各种插件提供我们开发程序的各种功能。Eclipse的发行版本带有最基本的插件,软件开发人员可以在此基础上通过开发插件建立自己的IDE。课程(kèchéng)导论共五百二十页建立Android的开发(kāifā)环境目前提供了两种配置Android开发环境的方法。一种做法:分别下载Eclipse和Android的SDK,然后在Eclipse的菜单中选择Help->InstallNewSoftware…,输入/Android/eclipse/来安装(ānzhuāng)Android的开发插件ADT,最后在Eclipse的菜单中选择Windows->Preferences来指定已经安装好的AndroidSDK的所在路径。第二种方法:下载Eclipse的Android集成开发包,包括:Eclipse开发工具,并且已经配置好AndroidADT,以及指定好AndroidSDK的所在路径。由此可见该方法更加简单快捷。但目前在Android的官网上只提供AndroidStudio的集成开发包,不再提供Eclipse的Android开发集成包。可以在百度上输入下面的搜索字:”AndroidADTBundle下载”课程导论共五百二十页Eclipse的快捷键Ctrl+Shift+O:自动导入代码中用到类的所属包,此组合键在编程中非常有用。Alt+/:代码助手完成一些代码的提示(tíshì)插入,例如类名补全,方法提示(tíshì)等。Ctrl+Shift+F:格式化当前代码,使代码整齐。Ctrl+/:注释当前行,再按则取消注释。Ctrl+D:删除当前行。Ctrl+T快速显示当前类的继承结构。课程(kèchéng)导论共五百二十页任务(rènwu)实施(一)AndroidSDK的下载:登录(dēnɡlù)Android的下载主页:/sdk/index.html课程导论共五百二十页同意协议,并选择平台版本,即可以(kěyǐ)点击下载课程(kèchéng)导论共五百二十页下载(xiàzǎi)SDK后,配置Android开发环境首先将下载(xiàzǎi)压缩文件进行解压,会看到如下结构:课程导论进入eclipse目录,点击eclipse.exe文件打开IDE开发环境,即可进行Android开发。如果需要建立多种Android平台版本,可以点击Eclipse菜单的Window->AndroidSDKManager来下载其他版本的Android。如果需要建立不同尺寸或者版本的模拟器,可以点击Eclipse菜单的Window->AndroidVirtualDeviceManager进行配置共五百二十页AndroidSDKManager课程(kèchéng)导论共五百二十页AndroidVirtualDeviceManager课程(kèchéng)导论共五百二十页AndroidStudio感兴趣的同学也可以尝试使用来进行Android开发,下载的网址是:/sdk/installing/studio.html。AndroidStudio采用(cǎiyòng)的是intellijIDE的开发工具,而IntelliJ在业界被公认为最好的java开发工具之一,它的运行速度要较Eclipse快。课程(kèchéng)导论共五百二十页课程(kèchéng)导论测试(cèshì)开发环境共五百二十页任务分析要看前面任务的软件安装配置是否能够正常工作,一个比较简单直接的方法是尝试通过IDE开发环境开发一个Android程序:开发一个Android程序的主要步骤?如何运行(yùnxíng)一个Android程序?如何调试一个Android程序?课程(kèchéng)导论共五百二十页课程(kèchéng)导论Android基本(jīběn)概念共五百二十页Android基本概念Android是一个用于移动设备的软件集,包括操作系统,中间件和关键的应用程序。AndroidSDK提供了必须的工具和APIs用于在Android平台上使用Java编程语言开发应用程序Android具有如下的特征允许重用和替换组件的应用程序框架具有专门为移动设备优化的Dalvik虚拟机集成基于开源引擎WebKit的浏览器通过自定义的2D图形库优化显示图形,提供基于OpenGLES1.0和2.0规范的3D图形支持用于结构数据存储的SQLite为常见的声音,视频和图形格式,例如:MPEG4,MP3,PNGGSM、CDMA、TDSCDMA电话(依赖于硬件)蓝牙、EDGE、3G和WiFi(依赖于硬件)照相机、GPS、指南针和加速度传感器(依赖于硬件)丰富的开发环境(huánjìng):设备模拟器、调试工具、内存和性能分析课程(kèchéng)导论共五百二十页Android的主要(zhǔyào)版本发展课程(kèchéng)导论

共五百二十页Android的体系结构课程(kèchéng)导论共五百二十页Android体系结构各层功能(gōngnéng)说明(一)应用程序(APPLICATIONS):是Android推出的一组使用Java编写的核心应用程序,如:Email客户端,短信程序,日历,地图,通信录。应用程序框架(ApplicationFramework):是Android为开发者提供的一个开放平台,在应用程序的下一层。开放者可以通过它们自由地充分利用设备硬件,访问(fǎngwèn)位置信息,运行后台服务,设置告警,在状态栏上增加通知等。开发者可以和核心应用程序那样调用同样的框架APIs。应用程序框架提供的是一组服务和系统,这些会在程序开发过程中直接使用到,包括:丰富且具有可扩展性的视图:可用于构建应用程序的界面内容提供者:允许应用程序访问其它应用程序的数据(例如:通信录),或者共享它们自己的数据资源管理器:提供对非代码资源,如本地化字符串,图像的管理通知管理器:允许应用程序在状态栏上显示定制的警报。活动管理器:管理应用程序的生命周期,提供导航回退功能课程导论共五百二十页Android体系结构各层功能(gōngnéng)说明(二)Libraries:Android包括的一组C/C++库,它们用于Android系统不同的组件。这些功能通过Android应用程序框架对开发者开放,包括:C语言系统库、多媒体库、外观管理器、LibWebCore、SGL、3D库、FreeType、SQLite等。

AndroidRuntime:Android包括的一组核心库,提供大部分Java编程语言核心库的功能。每一个Android应用程序是在Dalvik虚拟机的实例下以进程形式运行。Dalvik虚拟机执行的文件是Dalvik可执行格式(DalvikExecutable,称为.dex),它被优化成最小内存占用。与Java虚拟机时基于堆栈不同,Dalvik虚拟机是基于寄存器的,它通过转换工具dx将Java字节码转换成dex格式。Linux内核:Android依赖于Linux某个版本的核心系统服务,例如(lìrú):安全、内存管理、进程管理、网络堆栈、驱动程序模型。内核也作为硬件和软件堆栈其余部分之间的抽象层。课程导论共五百二十页对Android应用程序的理解(lǐjiě)Android应用程序主要是由Java语言编写,但对于特殊性能要求的功能,也可以先使用C或者C++编写代码,建立动态库,再通过NDK将其与Java应用一起打包成apk。AndroidSDK工具将代码、数据和资源文件编译为一个Android包,它是一个后缀为.apk的归档文件。.apk归档文件将被用在设备上安装应用程序。Android应用程序是可以访问系统(xìtǒng)服务的,例如:应用程序可以请求访问用户的通讯录,短信,SD存储卡,摄像头,蓝牙,以及更多的设备,但要求用户在安装应用程序时必须被授予相应的权限。课程导论共五百二十页Android的组件(zǔjiàn)应用程序组件是一个Android应用程序的重要基石,在编程时根据需要编写相应的组件。有四种不同类型的应用程序组件。每个类型服务于不同的目的:Activity:活动表示一个用户界面,可以和用户进行交互。例如,Email应用程序可以有一个显示(xiǎnshì)新邮件的activity,一个撰写电子邮件的activity和一个阅读邮件的activity。虽然这些activities一起为Email应用程序提供用户体验,但它们每个都是相互独立Service:服务是一个运行在后台的组件(并不提供用户界面),一般用于执行需要长时间运行的操作或执行远程进程的工作。例如:某个service可能会在后台播放音乐。Contentprovider:内容提供者管理应用程序共享的数据集。例如:读取系统自带的联系人信息。Broadcastreceiver:广播接收者是一个负责全系统广播通知的组件。例如:广播电池没有电。课程导论共五百二十页认识(rènshi)手机模拟器手机模拟器(MobileEmulator)的作用是在电脑上模拟手机环境,从而可以在电脑上进行手机程序开发、调试和发布。针对不同平台版本(bǎnběn)、不同尺寸的手机有不同的手机模拟器。课程导论共五百二十页Activity应用程序的生命周期Activity是Android程序图形用户界面的基本组成部件(bùjiàn)。Android程序由一个或者多个Activity类组成,而程序都是从Activity类开始执行,系统规定了Activity的生命周期有创建,开始,唤醒,暂停和销毁五种状态。Android定义了一系列与生命周期相关的方法,在我们自己的Activity中,只是根据需要重写需要的方法来实现相应的数据初始化,和回收等操作。开发一个Android程序,首选需要创建一个继承于Activity的类。以下为编写Activity程序,并实现其生命周期相应操作的示例:课程(kèchéng)导论共五百二十页Activity应用程序的生命周期代码(dàimǎ)示例课程(kèchéng)导论publicclassMyActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){//一个Activity的实例启动时调用的第一个方法。一般情况下,在这里编写初始化数据、从Xml布局文件中加载设计好的用户界面等方面的操作}protectedvoidonStart(){

//在onCreate()方法执行之后被调用,或者在Activity从Stop状态转换为Active状态时被调用}protectedvoidonResume(){

//在Activity从Pause状态转换到Active状态时被调用,或者在onStart()方法执行之后被调用。onResume()方法也较为适合放入初始化数据的操作}protectedvoidonPause(){

//从Active状态转换到Pause状态时被调用}protectedvoidonStop(){

//从Active状态转换到Stop状态时被调用,一般在这里保存Activity的状态信息}protectedvoidonRestart(){//当处于stop状态时,当前Activity被重新向用户显示时调用该方法}protectedvoidonDestroy(){

//在Activity结束时调用,在这里一般做些释放资源,清理内存等工作}}共五百二十页Activity应用程序的生命周期课程(kèchéng)导论共五百二十页开发(kāifā)第一个Android程序第一步是选择创建(chuàngjiàn)一个AndroidApplicationProject项目,在创建向导中指定应用程序名称、包名称、运行的Android版本等信息。第二步是根据项目的需要在Activity类中编写代码,或者新创建其它类,在Activity类中进行引用。课程导论共五百二十页Android项目主要目录(mùlù)的作用课程(kèchéng)导论共五百二十页自动(zìdòng)生成的代码publicclassMainActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);

}publicbooleanonCreateOptionsMenu(Menumenu){//Inflatethemenu;thisaddsitemstotheactionbarifitispresent.getMenuInflater().inflate(R.menu.main,menu);returntrue;

}}课程(kèchéng)导论共五百二十页代码(dàimǎ)分析MainActivity类继承了Activity抽象类。setContentView方法(fāngfǎ)是设置用户界面,其中参数R.layout.activity_main是一个表示界面布局信息的XML文件。在Android开发中,界面设计很多是依靠布局文件来完成。这在后面的项目中有详细的介绍。onCreateOptionsMenu方法是创建程序的菜单,其中R.menu.main也是一个描述菜单信息的XML文件。onCreateOptionsMenu方法在程序中并不是必须的,可以删除掉。在Android项目中会自动生成一些由XML编写的配置文件,他们在Android开发中起到很重要的作用。课程导论共五百二十页AndroidManifest.xml文件(wénjiàn)的作用AndroidManifest.xml文件可以理解为关于Android应用程序的清单文件,用于向Android系统提供关于应用程序的重要信息。例如:一个Android应用程序中一般包含多个Activity类,要具体区分Android程序首先执行的是哪个Activity类,程序有哪些Activity类可由系统识别,系统有哪些权限可以交由应用程序使用,应用程序的图标、程序名称管理、应用程序需要用的第三方包等。在Android系统开始启动一个应用程序组件时,系统必须读取AndroidManifest.xml文件以便知道组件是否存在。任何一个Android项目(xiàngmù)都需要使用该文件,并要求放在项目(xiàngmù)的根目录下。课程导论共五百二十页XML基础知识简述(jiǎnshù)标记语言采用一套标记标签来表示文本信息,标签是由尖括号包围的关键词,如<html>,其作用是描述文本信息。XML(eXtensibleMarkupLanguage)称为可扩展标记语言。XML文档的后缀是.xml,既可以使用专门的编辑工具,也可以使用文本编辑器对其进行编写。XML的标记没有被预定义,用户可以自行定义标记来描述数据。与HTML(HyperTextMarkupLanguage)的差异在于,XML主要用来存储规范的数据信息。每个XML元素都以一个起始标签开始,以一个结束标签收尾。起始标记以<符号(fúhào)开始,以>符号结束。结束标签以</符号开始,以>符号结束。XML元素可以带有多个属性,属性值需要添加引号。课程导论共五百二十页AndroidManifest.xml文件(wénjiàn)的描述声明组件:AndroidManifest.xml文件的主要任务是通知Android系统(xìtǒng)应用程序包含的组件。可以这样定义一个Activity。课程导论<?xmlversion="1.0"encoding="utf-8"?><manifest...><applicationandroid:icon="@drawable/app_icon.png"...><activityandroid:name="ject.ExampleActivity"android:label="@string/example_label"...></activity>...</application></manifest>在<application>元素中,android:icon属性指明应用程序图标用到的资源,在<activity>元素中,android:name属性指明Activity子类的完整名称,android:label属性作为Activity在手机界面上用户可见的标签。共五百二十页Android应用程序的运行(yùnxíng)和调试方法选中Android项目,点击右键,选择RunAS->AndroidApplicaion。也可以使用Eclipse工具栏上的图标来运行项目选中Android项目,点击右键,选择DebugAS->AndroidApplicaion。该运行方法相当于对Android项目进行断点调试,以便于找出程序中的问题。除了可以利用Java的System.out.println()方法输出信息之外,还可以利用Android提供的Log.v(Stringtag,Stringmsg)方法以日志方式输出相应的信息,其中参数tag表示标签,参数msg表示内容,取值都可以在编程中指定。这些信息可以通过Eclipse的LogCat视图进行查看如果发现项目的奇怪的报错,可以执行Eclipse菜单的Project->Clean菜单项,来重新(chóngxīn)编译项目课程导论共五百二十页实训项目(xiàngmù)1建立Android开发环境(P38)1.实训目的与要求

学会下载、安装和配置Android开发环境所需的软件,建立Android程序(chéngxù)的开发环境。2.实训内容实训内容为任务一、二、三中项目实施内容,按照规划任务内容,实施实训。课程导论共五百二十页实训项目2开发运行(yùnxíng)一个简单的Android程序1.实训目的与要求学会利用Eclipse自动生成一个Android程序,并使用不同的模拟器运行,以便对Android程序的开发步骤有初步的认识。2.实训内容实训内容为任务四中项目实施内容,按照规划(guīhuà)任务内容,实施实训。3.思考运行不同的手机模拟器对Android的程序开发有什么作用?课程导论共五百二十页第二(dìèr)讲共五百二十页项目(xiàngmù)工作情景目标是让学生掌握利用Android的界面开发技术。主要的工作任务划分为:开发输入界面。进行事件处理。显示计算结果。发布到手机。主要涉及的关键技术包括:Activity类的使用布局文件(wénjiàn)的设计事件的处理创建菜单。课程导论共五百二十页课程(kèchéng)导论背景知识:常见的手机(shǒujī)硬件参数知识共五百二十页分辨率手机屏幕尺寸分为物理尺寸和显示分辨率两个概念。物理尺寸是指屏幕的实际大小,以屏幕的对角线长度作为依据(比如3.5英寸、4.0英寸)。在屏幕上看到的画面其实都是由一个个小点组成,这些小点又称为像素。每个像素点可以近似看作屏幕上的一个发光点,点的密度越大,则显示效果越清晰,在单位面积下显示内容越多。屏幕分辨率反映的是在物理尺寸下可以显示的像素数量。分辨率是以乘法形式表现,比如手机常见的320×480,其中“320”表示屏幕上水平方向显示的点数,“480”表示垂直方向的点数。分辨率越大表示像素的数量越多,图像就越清晰,因此这个(zhège)指标是决定画面好坏的最主要因素。两台手机的物理尺寸一样并不表示其分辨率相同,不同物理尺寸的手机,可以都显示相同的分辨率,例如:4.3英寸三星i9100和4.0英寸的HTCG11都是具有480×800像素(WVGA)。课程(kèchéng)导论共五百二十页分辨率术语(shùyǔ)VGA:全称是VideoGraphicsArray,支持640×480像素。是IBM计算机的一种显示标准,是现在绝大多数分辨率的基准。QVGA:全称是QuarterVGA,意思是VGA分辨率的四分之一,支持240×320像素。目前大部分的手机都采用这种分辨率,例如:索尼爱立信S500c、三星S3650C、摩托罗拉A1800、诺基亚E66等。HVGA:全称是Half-sizeVGA,意思是VGA分辨率的一半(yībàn),为为480×320像素。例如:iPhone、第一款Google手机T-MobileG1采用这种分辨率。WVGA:全称是WideVGA,意思是扩大了VGA的分辨率,支持480×800像素,例如三星的I9000,HTC的DesireHD等。FWVGA:全称是FullWideVGA,意思是扩大了WVGA的分辨率,支持480×854像素,例如:摩托罗拉的Milestone2,诺基亚N900等。课程导论共五百二十页色彩(sècǎi)数量屏幕颜色是由色阶来决定。色阶是表示手机液晶显示屏亮度强弱的指数标准,也就是通常所说的色彩指数,表示了色彩的丰满程度。目前手机的色阶指数从低到高可分为:最低单色,其次是256色、4096色、65536色、26万色、1600万色。256=2的8次方,即8位彩色;依次类推,65536色=2的16次方,即通常所说的16位真彩色;26万=2的18次方,也就是18位真彩;1600万=2的24次方,也就是24位真彩。目前手机能达到的色彩数量也是限制美术人员发挥的一个重要瓶颈。将色阶高的图片(túpiàn)放到色阶低的手机上,会产生图片(túpiàn)色彩的失真,有的颜色无法区分,色偏严重。所以,设计人员需要根据实际手机进行图片(túpiàn)绘制。课程导论共五百二十页CPU一台手机像电脑一样具有CPU和内存的,特别(tèbié)是智能手机目前越来越普遍,更高的CPU硬件配置将成为手机发展的一个趋势,四核、八核的手机CPU已出现。CPU具有运算器和控制器功能,是手机的心脏,构成了系统的控制中心,对各部件进行统一协调和控制。主频是衡量手机CPU性能高低的一个重要技术参数,频率越高,表明指令的执行速度越快,指令的执行时间也就越短,对信息的处理能力与效率就高。德州仪器、Marvell公司、高通(QUALCOMM)公司是业界较有名的手机CPU厂商。课程(kèchéng)导论共五百二十页内存(nèicún)手机上的内存分为RAM和ROM,其中RAM是动态内存,相当于电脑的内存,是影响手机程序运行性能的重要指标,在RAM中的数据在手机关闭后丢失。ROM则相当于电脑的硬盘,用于存储手机操作系统、应用程序和用户的文件,ROM中的信息在掉电后并不会丢失。随着手机上安装程序的增多,以及数据信息的累加,ROM的可用空间会不断减少。如果ROM的空间太少,就会影响到手机的操作速度。这一点和电脑引导盘空间(例如:Windows系统的C盘)的减少会影响电脑的使用(shǐyòng)类似。可将ROM看作手机的内部存储卡。手机的大小可以通过增加外部存储卡(SD卡)来做进一步扩充,一般用于存放用户的文件,例如视频、音频文件。可以将其理解为电脑上的外接移动硬盘。课程导论共五百二十页Android的像素(xiànɡsù)单位Android的像素单位有dip、px、pt、sp等,下面分别介绍它们中主要的用途:dip(DeviceIndependentPixels):设备独立像素。Android设备的屏幕尺寸有很多种,为了使显示能尽量与设备无关,提出了dip的概念,这样可以使程序能够较好地在分辨率不同的手机上运行,并保持类似的外观。即在分辨率不同的屏幕上,相同dip的控件占据屏幕的百分比相等。在程序中一般建议(jiànyì)采用该像素单位进行设置。px:表示像素,采用的是绝对大小,不同设备的显示效果相同,即大小不随设备分辨率的改变而改变,是Android默认的像素单位。sp:放大像素,与dip概念类似,推荐用于设置字体,TextView控件的字体好以sp为单位课程导论共五百二十页课程(kèchéng)导论任务(rènwu)一开发输入界面共五百二十页任务分析应用程序主要是由界面和逻辑处理功能组成,标准体重计算器的开发可分为信息录入界面、数据处理和结果反馈3部分,本次任务是为用户提供录入数据的界面。要完成本次任务,需要思考如下3个问题:如何使用Android常用的界面类,它们有哪些重要的方法(fāngfǎ)?如何使用XML描述布局?如何在手机上显示所开发的界面?课程(kèchéng)导论共五百二十页课程(kèchéng)导论相关(xiāngguān)知识共五百二十页用户界面(yònɡhùjièmiàn)设计用户界面(UserInterface)是用户使用程序的桥梁,良好的界面能够使用户更乐意去接受和使用程序。设计一个良好的用户界面不是追求漂亮的外表,下面给出4个用户界面设计的原则:1.满足(mǎnzú)系统功能的需求:这是一个最基本的原则,用户界面反映了程序对外所提供的功能。用户界面不符合系统功能的需求,将会直接影响到程序的使用效果。2.能够给用户提供准确的信息:不会对用户使用程序起到误导。3.布局合理,易于使用:根据信息显示的载体特点进行界面布局,例如:手机和电脑的屏幕大小差异较大,需要在布局上做更精心的设计,应使用户能够快速找到所需要的信息,具有良好的交互性,使得用户不需要太多的培训就可以直接使用程序。4.界面风格要一致,符合用户的使用习惯。课程导论共五百二十页用户界面设计(shèjì)建议在进行(jìnxíng)软件开发时,如果感觉到没有头绪,也可以通过网上的手机商店查找业界同类型的软件,进行(jìnxíng)参考。例如:图2-2为使用Android开发的一款导航软件的界面:课程导论

共五百二十页应用程序界面部分的主要(zhǔyào)组成一个Android应用是类android.app.Application的一个实例Application中可以包含多个Activity实例。系统给每个Activity分配一个默认的窗口,而窗口中的内容则需要调用setContentView()方法将其放在一个显式的视图(shìtú)ContentView中,该视图描述了界面上具体的UI控件,如标签、文本框、单选框、多选框等。课程导论

共五百二十页View类View类是Android所有UI控件的父类。View对象是指在界面上可直接看到的控件,例如:文本框、单选框、多选框、图片、按钮等。View控件和Swing编程中的JPanel类似,代表一个空白的矩形区域,并负责绘图和事件处理。ViewGroup是View类的一个重要子类,通常作为其他控件的容器使用,可定义其子View对象的布局。Android的所有UI控件都建立在View、ViewGroup基础之上,所有继承于View类的控件都可以(kěyǐ)使用其属性和方法课程(kèchéng)导论

共五百二十页View类的XML属性(shǔxìng)课程(kèchéng)导论

共五百二十页XML的属性(shǔxìng)说明表格上所列出View类属性和方法很多,目的是使大家(dàjiā)知道用户界面设计既可以在XML布局文件中指定属性的值,也可以在编程过程中通过相关方法动态地修改该属性对于初学者开发者来说,建议只记忆标记为粗体的常用属性,并不需要花费时间去记忆所有的属性。可以根据属性名字和方法的英文含义去理解其作用,在平时练习中需要实现某些功能时,从上表查阅即可。属性android:id的命名和程序变量的命名类似,需要赋予一个有含义的标识,以便于后面在程序代码中调用。Android包下面的android.R.styleable类包含所有控件相关的XML属性,在编程时可以进行调用。课程导论

共五百二十页TextView控件的主要(zhǔyào)属性课程(kèchéng)导论

共五百二十页android:gravity属性(shǔxìng)的取值课程(kèchéng)导论

android:gravity="top":不改变大小,位于容器的顶部android:gravity="bottom":不改变大小,位于容器的底部android:gravity="left":不改变大小,位于容器的左边android:gravity="right":不改变大小,位于容器的右边android:gravity="center_vertical":不改变大小,位于容器的纵向中央部分android:gravity="center_horizontal":不改变大小,位于容器的横向中央部分。android:gravity="center":不改变大小,位于容器横向和纵向的中央部分共五百二十页EditText控件的主要(zhǔyào)属性课程(kèchéng)导论

共五百二十页EditText控件的常用方法(fāngfǎ)说明在Android源程序中EditText类的常用方法(fāngfǎ)主要有三种:selectAll():文本全选。getText().toString():以字符串形式返回文本框的文本。其中getText()返回的是CharSequence类型的接口,用toString()方法将其转换成String类型。setText(text):向文本框填写内容。setText(intresid):向文本框填写内容。参数来自res文件夹中的string文件中定义的关键字。因此,若若需要将数字写入EditText中,需要先对数字转换成字符串,即String.valueOf(num),否则容易报错。课程导论

共五百二十页颜色(yánsè)赋值对于涉及颜色赋值的XML属性,例如:android:textColor、android:textColorHighlight、android:textColorHint、android:background,使用(shǐyòng)六位16进制数表示RGB颜色,其中前两位表示红色R,中间两位表示绿色G,最后两位表示蓝色B,每两位的取值范围都是00~FF(相当于10进制的0~255)红、绿、蓝三种颜色的16进制表示方法是:本位取最大值FF,其他位取最小值00,即:#FF0000红色#00FF00绿色#0000FF蓝色另外两个比较特殊的颜色表示为:#000000黑色,#FFFFFF白色课程导论

共五百二十页布局(bùjú)布局是一个程序用户界面的架构,它定义了界面的布局结构,用于存放一组需要显示给用户的元素,例如文本框、按钮等控件。布局文件使用XML来定义自己的布局和表达层次视图,以.xml为扩展名,存放在项目的res/layout目录下,可自动被编译放在R.java文件中Eclipse在创建一个Activity类时,会自动为其生成一个布局文件。需要注意的是,res目录下的所有资源文件命名都能有大写字母或者中文字符,也不能拿数字作为首字母,所以布局文件的命名不能使用大写字母。每个布局文件必须包含一个根元素,根元素必须是一个View或ViewGroup对象。一旦定义了根元素,就可以添加其他(qítā)View元素,逐步构建一个视图层次的界面布局。布局文件的设计,建议使用Android自带的GraphicalLayout来进行可视化设计,尽量减少直接编写XML代码,以免写错。课程导论

共五百二十页创建一个布局(bùjú)文件课程(kèchéng)导论

右键点击项目的res->layout文件夹,选择new->AndroidXMLFile共五百二十页创建(chuàngjiàn)一个布局文件(续)课程(kèchéng)导论

共五百二十页布局文件(wénjiàn)的种类关于手机屏幕上的控件摆放设置,Android提供了5种布局方式,分别为:线性布局(LinearLayout)表格布局(TableLayout)相对布局(RelativeLayout)单帧布局(FrameLayout)绝对布局(AbsoluteLayout)可以(kěyǐ)将布局理解为前面讲到的ViewGroup。这些布局也可以嵌套在一起使用,以便于灵活地生成各种布局样式,即布局下面有子布局,例如相对布局下面,有线性布局。对需要设置成某种布局的控件,应将其XML配置代码作为布局的子元素。布局属性的设置会影响内部控件的排列,所以在修改控件的属性时,如果无法出现预期效果,应进一步检查其上一级布局属性的设置。课程导论

共五百二十页布局文件示例(只有(zhǐyǒu)一个文本输入框)课程(kèchéng)导论

<LinearLayoutxmlns:android="/apk/res/android"xmlns:tools="/tools"android:id="@+id/LinearLayout1"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#000000"android:orientation="vertical"><EditTextandroid:id="@+id/editText1"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="10"><requestFocus/></EditText></LinearLayout>共五百二十页布局(bùjú)文件在程序中的加载在编译Android应用程序时,每个XML布局文件将被编译成一个View资源。由Activity代码中的onCreate()函数调用setContentView()实现布局资源的加载,以“R.layout.布局文件名”的形式作为函数(hánshù)的参数值。如对名为main_layout.xml的布局文件,加载如下代码。课程导论

public

void

onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

//调用父类的onCreate方法

setContentView(R.layout.main_layout);

}

共五百二十页XML中的资源(zīyuán)ID设置好用户界面后就可以进一步操作布局文件(wénjiàn)中的元素。XML文件中的每一个元素对应一个Java类,那么如何确定元素对应的UI类呢?这就涉及XML的ID属性。XML中ID属性语法如下。android:id="@+id/editText1"@符号表示XML解析器应该解析和扩展剩下的ID字符串,并将其用作ID资源。+符号表示这是一个新的资源名字,必须被创建且加入到R.java文件中。R.java文件是一个最终类,保存了应用程序用到的图标、常量等各种资源ID,被放置在“项目名称/gen/项目包名/R.java”目录下。R.java是编译器根据用户的XML文件或资源文件自动创建的,请勿手工修改R.java文件。通过R.java,应用程序能方便地查找到对应的资源,调用的格式是R.XXX.XXX,XXX符号在实际使用时应填写具体的值。如R.drawable.XXX,R.string.XXX、R.layout.XXX、R.id.XXX,分别对应于“项目目录/res/drawable/”下的资源、“/res/string/”下的字符串、“/res/layout/”下的布局文件及XML文件中控件元素的ID等。R.layout.main_layout表示名为main_layout的布局文件。课程导论

共五百二十页在程序中通过XML中的资源ID,获得对应(duìyìng)的资源对象通过findViewById方法从布局文件中找出文本输入框,并向其中填写内容,editText1为文本框的ID。public

void

onCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main_layout);

//对findViewById方法返回的结果需要根据View的类型进行(jìnxíng)强制类型转换,下面代码是转换为文本框EditTexttEdit=(EditText)findViewById(R.id.editText1);tEdit.setText("您好!");}

课程导论

共五百二十页线性布局(bùjú)线性布局分为(fēnwéi)垂直线性布局和水平线性布局,分别表示为android:orientation=“vertical”和android:orientation=“horizontal”。垂直线性布局表示控件以垂直方式排列,即每一行放一个控件;水平线性布局表示控件按照水平方式排列,即所有控件都放在同一行,超出部分会被遮盖线性布局的根元素名为:LinearLayout课程导论

垂直线性布局水平线性布局共五百二十页复杂(fùzá)的线性布局界面(属性解释请参考P48页)课程(kèchéng)导论

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_height="fill_parent"android:layout_width="fill_parent"><Buttonandroid:id="@+id/Button01"android:layout_height="wrap_content"android:text="上面"android:layout_width="fill_parent"></Button><LinearLayoutandroid:id="@+id/LinearLayout01"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_width="wrap_content"><Buttonandroid:id="@+id/Button03"android:layout_height="wrap_content"android:text="左边"android:layout_width="wrap_content"></Button><Buttonandroid:id="@+id/Button02"android:layout_height="wrap_content"android:text="右边"android:layout_width="wrap_content"></Button></LinearLayout><LinearLayoutandroid:id="@+id/LinearLayout02"android:layout_width="fill_parent"android:layout_height="fill_parent"><Buttonandroid:id="@+id/Button05"android:layout_height="wrap_content"android:layout_weight="1"android:text="左边"android:layout_width="wrap_content"></Button><Buttonandroid:id="@+id/Button04"android:layout_height="wrap_content"android:text="右边"android:layout_weight="5"android:layout_width="wrap_content"></Button></LinearLayout></LinearLayout>共五百二十页相对(xiāngduì)布局在这个容器内部的子元素们可以使用彼此之间相对位置或者与容器间的相对位置来进行定位。使用相对布局的好处是位置控制比较灵活。相对布局的根元素名为:RelativeLayout相对布局的主要属性包括4类:①设置控件与控件之间的位置关系(见表2-4);②设置控件与控件之间对齐的方式,是顶部、底部还是左、右对齐(见表2-5):③设置控件与父控件之间对齐的方式,是顶部、底部还是左、右对齐(见表2-6);④设置控件方向的属性(见表2-7)。可以通过组合这些(zhèxiē)属性来实现各种各样的布局效果。课程导论

共五百二十页相对(xiāngduì)布局课程(kèchéng)导论

共五百二十页相对(xiāngduì)布局示例(P48)<?xmlversion="1.0"encoding="utf-8"?><RelativeLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:background="#0000FF"android:padding="10px"><TextViewandroid:id="@+id/tv01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginBottom="30dp"android:text="请输入:"/><EditTextandroid:id="@+id/txt01"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/tv01"/><Buttonandroid:id="@+id/btn01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_below="@id/txt01"android:text="确认(quèrèn)"/><Buttonandroid:id="@+id/btn02"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/txt01"android:layout_marginRight="30dp"android:layout_toLeftOf="@id/btn01"android:text="取消"/></RelativeLayout>课程导论

共五百二十页表格(biǎogé)布局(P50)表格(biǎogé)布局的样式与一个表格(biǎogé)类似。通过TableRow来定义行,有几行就有几个TableRow表格布局的根元素名为:TableLayout<?xmlversion="1.0"encoding="utf-8"?><TableLayoutxmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"> <TableRow> <Button android:text="第1排第1列"

/> <Button android:text="第1排第2列"

/>

<Button android:text="第1排第3列"

/> </TableRow> <TableRow>

<Button android:text="第2排第1列" /> <Button android:layout_span="2"

android:text="第2排第2列[占2列]" /> </TableRow></TableLayout>

课程导论

android:layout_span:该控件所占的列数,取值越大,控件占的空间越大共五百二十页RadioButton单选框(P51)要实现单选功能,需要使用RadioGroup和RadioButton控件。RadioGroup是一个容器,用于管理一组RadioButton,用户只能选择(xuǎnzé)其中的一个RadioButton。在没有RadioGroup的情况下,RadioButton可以被全部选中。课程(kèchéng)导论

<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><TextViewandroid:id="@+id/TextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="求职意向"></TextView><RadioGroupandroid:id="@+id/RadioGroup01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"><RadioButtonandroid:id="@+id/RadioButton01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="北京"></RadioButton><RadioButtonandroid:id="@+id/RadioButton02"android:layout_width="wrap

温馨提示

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

评论

0/150

提交评论