毕业设计(论文)--基于android的输入法的设计与实现.doc

上传人:知****量 文档编号:91611848 上传时间:2023-05-27 格式:DOC 页数:35 大小:500.50KB
返回 下载 相关 举报
毕业设计(论文)--基于android的输入法的设计与实现.doc_第1页
第1页 / 共35页
毕业设计(论文)--基于android的输入法的设计与实现.doc_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《毕业设计(论文)--基于android的输入法的设计与实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)--基于android的输入法的设计与实现.doc(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、本 科 毕 业 论 文基于Android的输入法的设计与实现The Design and Realization of the Input Method Based on Android学 院 名 称: 计算机科学与信息工程学院 专 业 班 级:计算机科学与技术12-1(信息技术)学 生 姓 名: 学 生 学 号: 指导教师姓名: 指导教师职称: 2016 年 5 月目 录摘 要IAbstractII引 言1第1章 概述21.1选题背景21.2软件设计的概述21.2.1设计内容21.2.2 选题目的和意义31.3 国内外研究状况31.4 本章小结4第2章 系统分析52.1 开发工具与环境简介5

2、2.1.1 Eclipse工具简介52.1.2 Android studio工具简介52.1.3 Sqlite数据库介绍52.1.4 Android简介及运行原理62.2输入法消息传递机制72.3 可行性分析82.4系统功能需求分析82.5 系统性能分析92.6 本章小结9第3章 系统设计113.1输入法生命周期113.2 软件功能结构设计123.3 软件设计流程123.4 数据存储设计133.5 本章小结14第4章 系统实现154.1 设置模块的实现154.2 输入模块174.2.1解析软盘174.2.2字符输入194.3用户反馈模块234.4 本章小结25第5章 系统测试265.1 测试内

3、容及软件环境测试265.2 测试结果275.3 本章小结27致 谢29参考文献30I基于Android的输入法的设计与实现摘要:随着科技信息技术的不断进步与发展,电子移动设备越来越普及。其中最受人们推崇的就是智能手机。人们可以通过手机中的短信消息、电话薄、记事本、聊天工具、浏览器等进行通讯聊天、搜索阅览最新资讯等。但手机这些功能的实现都有一个最基本的前提,即支持字符输入。目前市场上手机品牌繁多,主要流行的智能手机操作系统包括:Android、iOS、Symbian、Windows Phone,其中Android用户占大部分。因此实现一个基于Android的、既能快速输入又简单易学的输入法APP

4、有着绝对的市场优势。另外,一款便捷的输入法在提高输入效率的同时也可以推广第三方应用的使用率。本文针对当前输入法软件的需求,设计一款能够支持中英文切换、标点符号输入、数字输入的输入法APP,在输入时能够生成联想词以便提高输入效率。而且增加了按键的效果,如振动。本设计在实现过程中主要用到了Android四大组件的Service组件、对XML文件解析等。关键字:输入法;Android;联想词The Design and Realization of the Input Method Based on AndroidAbstract: With the continuous development o

5、f science and technology progress and information technology, electronic mobile devices becoming increasingly popular. Tow of the most respected people ard smart phones. People can communicate chat,search by reading the latest news and other mobile phone SMS messages,phone book,notepad,chat,browser,

6、etc.But the realization of these features the phone has a basic premise that support character input. Mobile phones currently on the market many brands,mainly popular smartphone operating systems include: Android, ios, Symbian, Windows Phone,which accounts for the majority of Android users.Thus achi

7、eving a Android-based, both easy to learn and fast input Input Method APP has an absolute market advantage. In addition, a convenient input method input in improving efficiency but also can promote the usage of third-party applications. In this paper, the current input method software requirements d

8、esign a switch can support in English punctuation input, input method APP digital inputs,when the input to generate word associations in order to improve the efficiency on input.But also increases the effect of keys,such as vibration. The design process is mainly used in the realization of the four

9、major components of the Android Service components, analytical techniques and other XML documents.Keywords:Input method;Android;Associational word I引 言随着科学技术的进步与发展,移动终端设备越来越普及,而且它的硬件设备越来越好,应用软件也层出不穷,具有很大的发展空间。目前市场上移动终端设备使用的主流操作系统为Android、iOS、Windows phone,来自Statistic的数据显示,2010年iOS与Android共同的市场份额才仅为3

10、8%,但目前两者在移动市场上的份额已经超过了97%,而Windows phone目前的移动市场份额约占2.5%,且呈现下滑趋势。作为移动终端设备的引领者,Android系统以其源码开源的优势正处于蓬勃发展的开拓阶段,可谓是如日中天。正是因为Android源码开源,开发语言简单,智能手机价格亲民且性能体验优良,用户、程序开发者越来越倾向于Android系统的智能机,而以Android系统开发的应用软件的市场前景也是欣欣向荣。 目前软件市场虽然发展前景光明,但有市场必定存在竞争,而只有竞争才能促进技术的进步,性能体验的不断完善。市场上软件种类繁多,而且它们的功能也都根据用户的体验不断地完善与升级,

11、用户在使用这些软件的时候,不可避免的会触发输入功能,例如微信、陌陌、记事本、电话薄输入功能是由单独的输入法APP完成的,用户在使用输入法功能时最基本的用户体验就是输入效率,因此如何提高输入法的输入效率在实现输入法APP时尤为重要。本设计就是根据这一需求实现了一款可以中英文切换的输入法APP。在输入时实现了联想词的功能,从而极大提高了输入效率。且在输入法设置中也增加了一些按键效果,如振动、音效,用户反馈功能及联想词对否打开的控制开关。第1章 概述社会在发展,科技在进步。曾经交通不畅信息闭塞,如今通过互联网络我们足不出户便闻天下事;曾经手机块大如砖,如今小巧精致;曾经手机仅能通话,如今同电脑一样功

12、能丰富;曾经只有英文输入法,如今有多种语言输入。每一种进步都是根据人们的需求不断努力创新、探索的结果。我国作为智能手机用户的大国,如何提高中文输入的速率、优化输入法字符的输入方式已经成为急需解决的问题。1.1选题背景科技信息技术在不断的进步与发展,电子移动设备也受到极大的推崇。其中最受人们推崇的就是智能手机。人们可以通过手机中的短信消息、电话薄、记事本、聊天工具、浏览器等进行通讯聊天、搜索阅览最新资讯等。但手机这些功能的实现都有一个最基本的前提,即支持字符输入。最早期的输入法软件仅支持英文字符输入,但随着电子移动设备的推广仅英文输入已经不能满足广大用户的需求。人们已经开始研究如何使输入法支持输

13、入多种语言,甚至各种表情符号。而我国在推动移动终端设备的发展上起到重要作用,实现一款操作便捷、输入效率高、支持中文输入的输入法APP是市场发展的必然需求。目前,实现中文输入的主要技术来源是依靠国外技术,国内一些公司在研发输入法APP时需要交纳高昂的专利费用。另外,市场上输入法APP种类虽然玲琅满目,例百度输入法、搜狗输入法、讯飞输入法但用户在操作时仍会觉得操作不便,设置繁琐等问题,因此,根据这些现状开发一款操作便捷、输入效率高的输入法APP尤为重要。1.2软件设计的概述1.2.1设计内容本设计是基于Android的输入法的设计与实现。主要实现一个第三方的输入法apk,将该apk装入Androi

14、d系统的移动设备,能够通过系统设置将装入的输入法设置为默认输入法,使得用户在进行输入操作时均是通过该输入法实现输入。系统的结构设计主要分为设置模块、输入模块、用户反馈模块。设置模块的功能:用户可以根据自己的需求通过设置页面对输入法进行输入设置,如控制输入时是否有按键声音、振动;是否开启联想词功能;用户反馈功能。输入模块的功能:用户可以实现中文输入、英文输入的切换,且在输入时会产生联想词,以提高输入效率;可以输入09阿拉伯数字及其他标点符号;在英文输入时可以切换大小写等。用户反馈模块功能:用户可以输入反馈信息向开发者反馈应用的优缺点,以便产品的优化、应用的升级。1.2.2 选题目的和意义随着移动

15、通信设备的日益普及,人们越来越多地依赖于这些设备进行信息处理与交流,因此如何快速准确地向移动设备输入文字信息成为当今信息领域研究的热点之一。目前,移动设备使用的输入法主要为:数字键盘输入法、手写输入法以及全键盘输入法。由于移动设备硬件的限制,数字键盘输入法成为手机中最为常用的输入法,而我国汉字输入的主要技术来源于国外,90%以上的手机嵌入的汉字输入法技术使用的是国外的专利与技术,这需要交纳高昂的专利费用。而且,中国汉字呈现多样化,目前很多输入法虽然能实现中文输入,但是有很多汉字不完全,根本无法输入一些生僻字。因此开发一款属于我们自己的输入法不仅可以省去高昂的专利费用而且可以根据我们自己的需求设

16、计出使用便捷舒适的输入法。另外,我们通常都是用手机自带的输入法,如三星输入法、google输入法,有时我们也会根据自己的喜好下载应用第三方的输入法,如:搜狗输入法、百度输入法、讯飞输入法等。但是我们在使用这些输入法时或多或少会觉得有些不如意,可能认为输入界面设计的不合理给人视觉效果不好,或者找不到我们所需的文字或表情等。而且,未来的发展就是输入法的“语音时代”,输入法更加的智能与迅速,更加符合越来越快的社会节奏。因此设计一款输入法,使其尽可能的便捷,这样不仅加深了对Android输入法框架的理解,还能将各种输入法向移动设备的移植有借鉴意义。1.3 国内外研究状况Android曾经是旧金山一家公

17、司的名字,于2005年8月份被Google收购。Android系统由于它的开放性、应用程序无界性、应用程序可以轻松嵌入网络、并行运行等特点,已经成为一个平台、一个生态体系,在移动领域已经得到广泛应用。在国外,自Google公司宣布Android系统上市以来,在短短的几年内由于开源的优势迅速发展,在市场上有很大的市场占有率。在国外有很多基于Android平台开发的技术已经相当成熟。在国内,Android自09年进入中国以来,由于其设备价格的亲民性、移动通信设备公司的大力宣传,受到广大消费者的追逐。而广大应用程序的开发者也因为市场的需求、Android源码的开放性、开发工具的免费性陆续转战到基于A

18、ndroid平台的开发。目前国内Android开发主要方向是应用层开发,大致可分为三类:为企业开发应用、开发通用应用及游戏开发。虽然Android源码对外开放,但国内的学习资料并不是很多,大部分学习资料都是翻译过来的,并不全面而且可能丢失了原文所表达的含义。而对于英文文档,由于大部分人的英语水平限制,对原文文档理解的不是很透彻,这些都为Android技术在国内的发展带来了不便。1.4 本章小结本章主要介绍了选题背景、设计内容及其意义、国内外研究状况,充分说明输入法APP实现的重要性。第2章 系统分析需求分析在程序开发过程中具有举足轻重的地位。程序在开发过程中它的功能就是根据需求而来的,如果一个

19、系统在开发前没有进行需求分析,那么投入的人力、物力、财力都是徒劳的。因为系统在开发前就忽略了用户的需求,最后的结果肯定不能满足用户的要求。因此,需求分析在项目开发中具有决策性、方向性和策略性。2.1 开发工具与环境简介开发工具:Eclipse、Android studio;软件环境:JDK1.7版本,SDK,Sqlite数据库。2.1.1 Eclipse工具简介 Eclipse是一个开源的、免费的、基于Java的跨平台的集成开发环境(IDE),可以通过安装不同的插件使其支持不同的计算机语言。Eclipse的优点如下:1.源码开放、免费的开发工具;2.可以通过安装插件支持多种计算机语言,形成一个

20、强大的开发环境;3.具有可视化开发界面,便于开发人员操作。2.1.2 Android studio工具简介 Android studio是近年Google公司专门为Android开发者提供的开发工具,它是基于IntelliJ IDEA的Android开发环境,类似于eclipse的ADT插件,基于Gradle的构建支持。它的提示工具更好地对程序性能、可用性、版本兼容和其他问题进行控制捕捉,同时它自带的布局编辑器可以随意拖动UI组件,并支持在多个屏幕配置上预览布局等。2.1.3 Sqlite数据库介绍Sqlite是一个轻量级的数据库,它包含在一个比较小的C库中。它是D.Richardhipp建立

21、的公有领域项目。它是在Eclipse内部的数据库,当开发者需要一些不太复杂的数据库的时候,就可以使用Eclipse自带的数据库,不像常见的C/S范例,Sqlite引擎不是一个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在存在于主机上存储的一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。Sqlite数据库的主要特点如下:1.不需要安装,在使用时直接使用Android的sql语句创建数据库即可;2.数据保存

22、在单一磁盘文件中,是一个完整的数据库文件;3.数据库文件可以在不同字节顺序的机器间自由的共享;4.支持数据库容量大,2TB;5.占用空间小,大致13万行C代码,4.43M;6.以I/O流的方式或加载到内存的方式操作文件,数据库操作比较快;7.可以跨平台操作,且具有较高的移植性。8.比较好的注释源代码,并且有着很高的测试覆盖率;9.独立唯一,没有额外依赖;10.源码完全的开源,你可以随意使用,包括出售它;11.支持多种开发语言:C,PHP,Java,C#等。2.1.4 Android简介及运行原理Android是开放源码操作系统,它是以Linux和Java为基础的,主要适用于移动终端设备,该操作

23、系统最初由Andy Rubin开发,后被Google收购。Android进行开发主要是对四大组件的应用,其四大组件分别为Activity、Service、BroadcastReceiver、Content Provider。其中,Activity主要是用来展现界面。Service主要运行在后台提供服务。BroadcastReceiver主要接收广播处理信息。Content Provider提供数据,可以使不同应用程序间数据共享。一般情况下基于Android开发的应用程序主要是使用Activity,因为它使应用可视化,便于用户的操作和理解。Android系统架构由5部分组成,它们是LinuxKe

24、rnel、Android Runtime、Libraries、Application Framework、Applications,系统结构图如下图2-1所示。图2-1 Android系统结构图运行原理:当我们创建一个前台应用程序时,实质是实现一个Activity,我们可以通过这个Activity呈现出我们所设计的页面,并根据Activity的生命周期实现相关业务逻辑。而一个后台应用则是没有界面的,其相关的业务逻辑主要在Service中实现。在业务逻辑的实现过程中可能伴随着BroadcastReceiver、Content Provider两大组件的应用。以Activity为例解释如下: su

25、per.onCreate(savedinstancestate);/是Activity生命周期的第一个方法,用作UI等初始化操作 setContentview(R.layout.activity_main);/加载Activity的布局文件(activity_main.xml)2.2输入法消息传递机制输入法框架(IMF)是由客户端、输入法服务(InputMethodManagerService,IMMS)、输入法应用(InputMethodService,IMS)三部分组成。输入法的消息传递机制为IMMS负责管理系统的所有输入法,包括输入法service(IMS)加载及切换。程序获得焦点时,就

26、会通过InputMethodManager向InputMethodManagerService通知自己获得焦点并请求绑定自己到当前的输入法上。InputConnection接口实现了BaseInputConnection和InputConnectiionWrapper接口,主要用于客户端和输入法之间的通信。客户端通过InputConnection将输入码传给输入法后,输入法应用对输入码进行处理,处理完毕后需将得到的字符返回给客户端。另外,客户端不能直接访问输入法程序,只能通过EditText这类输入控件访问InputMethodSession接口。输入法的消息传递机制如下图2-2所示:图2-2

27、输入法消息传递机制2.3 可行性分析本应用从经济可行性和技术可行性两方面来阐述。1.经济可行性该应用在开发过程中主要开发工具为PC机一台,Android系统的测试机一台,且投入人力资源少,软件开发成本低,因此在经济上是可行的。2.技术可行性技术可行性指在现有技术下能否完成性能目标,在限制条件下能否完成功能目标。本设计在实现过程中采用的技术及语言都已经相当成熟,且在现有条件下没有什么难以克服技术问题,根据当前条件能够实现预定的功能、性能目标,因此在技术上是可行的。2.4系统功能需求分析输入法软件主要是针对移动终端设备开发的,主要目的是提高人们的输入速度,从而达到提高效率的目的。本应用最终的性能目

28、标就是易学、高效,能被广大人群接受,其大致的功能需求如下:1、能够实现中文输入;2、能够实现英文字符输入;3、英文输入时可以转换大小写;4、能够输入各种常用的标点符号;5、在中文输入时可以产生联想词,以提高输入的速度;6、可以增加按键效果,即在输入时有按键音效,如声音、振动;7、联想词的产生是可控的,即有开关可以控制是否产生联想词;8、有用户反馈功能,以便应用的功能完善升级。采用用例图进行功能分析时就是以角色、用例及它们之间的关系所构成的视图来阐述功能,从而清晰形象的表达出功能关系。本设计的功能模块大致可以设置模块、输入模块、用户反馈模块,用例图如下图2-3所示。图2-3用例分析图由上述需求分

29、析总结出各功能模块的关系为,用户在装入该输入法APP后可以通过终端设备的系统设置找到语言和键盘条目,然后将装入的输入法APP设置为系统默认的输入法,然后在通过该输入法设置对输入法功能做简要设置,例如是否开启按键音效、按键振动、是否开启联想词功能,设置完毕后可以通过任意应用触发输入法功能,触发后在输入时就会根据设置的功能显示按键效果。在输入时中可以输入中英文两种语言,在进行英文输入时可以控制大小写,中文输入时可以产生联想词。另外也可以切换到标点符号视图,进行符号输入。若用户在使用过程中有建议提出,可以通过用户反馈页面将建议反馈给开发者,以便产品的升级。2.5 系统性能分析由于本软件是终端设备必不

30、可少的应用,其用户量广大,但其最基本也是最重要的性能就响应时间快,输入效率高,因此其性能指标如下:所有操作的的平均响应时间2秒。2.6 本章小结本章主要对软件进行了需求分析,通过系统可行性分析、系统性能分析以及功能需求分析,总结出各功能模块的关系,为之后设计在实现前定制计划、分配任务提供参考与目标。第3章 系统设计软件设计在整个软件开发过程中占据十分重要的地位。好的设计可以使用户在使用过程中有一个好的用户体验,便于产品的推广。从程序员角度来说,一个好的设计可以减少开发的难度和开发周期,在一定程度上也节约了开发成本,为公司带来更大的利益。3.1输入法生命周期输入法是用户与应用程序交互的中介,它是

31、作为一个后台服务一直运行在后台,Android框架提供了一个输入法框架,它是可扩展的,允许应用程序向用户提供选择输入方式,例如键盘输入、语音输入等。用户可以在系统设置中选择想要使用的输入法,有且只会有一个输入法服务运行在后台。输入法的生命周期如下图3-1所示:图3-1输入法生命周期l onCreateInputiew():创建软盘视图;l onCreateCandldateViews():创建候选区;l onStartInput():开始输入字符;l onCurrentInputMethodSubtypeChanged():当切换输入法语言时会调用该方法;l onFinshInput():输入

32、字符完毕。3.2 软件功能结构设计软件的功能结构即软件的功能模块。在本设计中功能模块大致可以分为设置模块、输入模块,其中设置模块又包含输入法功能设置和用户反馈功能。因为输入法必须要做到实时触发实时响应,所以在设计时将其作为一个后台长寿程序一直在后台运行,让其实时监听用户行为,一旦有用户请求输入法功能就立即弹出输入框,响应用户行为。而用户使用输入法时可以进行中英文两种语言的切换、标点符号输入、阿拉伯数字输入满足了用户基本输入的需求。又考虑到应用是为广大用户而设计,应尽可能的满足广大用户的需求,因此增加了用户反馈功能,以便应用的升级。软件总体功能结构框架如下图3-2所示。图3-2软件功能结构图3.

33、3 软件设计流程 软件设计流程则是根据软件的功能需求以及用户的操作体验设计出软件实现后的模拟体验流程。该过程十分重要,因为程序开发人员就是根据这一设计体验实现各个功能模块,在软件开发完成后其操作流程应与设计流程一致。另外一个好地设计流程会有很好的用户体验,而且也会给开发人员在实现过程中省去很多不便,可以减少人力与财力的浪费。本设计实现的流程图如下图3-3所示。图 3-3 设计流程图3.4 数据存储设计数据的存储在软件开发中具有很重要的作用,很多软件页面显示的数据、页面跳转的流程均是根据保存的数据而来。数据存储有很多种方式,在Android中数据的存储主要有一下五种方式:数据库存储、文件存储、网

34、络存储、ContentProvider存储、SharedPreference存储。这五种存储方式各具优缺点,其中数据库存储主要运用于数据量大、数据间关系相对复杂且有较多数据操作(增删改查)的应用。SharedPreference存储方式适用于数据格式简单、数据间没有关联、数据量少的应用,一般主要存储应用的标记位、口令密码等。而本应用选择的存储方式就是SharedPreference存储方式,因为本应用主要存储设置中的一些选项标志位,这些标记位的数据格式简单且数据量少,便于存储读取,因此选择SharedPreference存储数据十分便捷。3.5 本章小结本章主要根据上一章的系统需求做了详细的设

35、计分析。结合输入法的生命周期大致介绍了输入法的流程。根据设计流程图可以很清晰的看出各功能模块的关联以及软件实现后的效果。而且也根据软件需存储的数据确定了数据存储的方式。为软件的具体开发实现做了充足的准备。第4章 系统实现用户在进行输入请求时,终端设备会根据设置的默认输入法进程弹出相应的输入法软盘,用户可以操作软盘实现目标字符的输入。本应用实现的语言输入为中文、英文两种语言,因此用户可以操作软盘实现语言的切换,也可以切换到符号视图界面输入相关标点符号。在进行英文输入时可以实现大小写的输入,中文输入时为提高输入效率加入了联想词功能。用户也可以通过设置功能对输入操作做一些设置,例如,操作软盘时是否开

36、启按键效果、是否开启联想词功能。此外,用户也可以像软件发布方提供一些建设性意见,以便产品的优化。4.1 设置模块的实现应用在实现过程中一般为了使应用更加人性化以及增加用户的体验特意增加了设置功能,以方便用户根据自己的喜好设置应用,这样做的目的是站在用户的角度开发应用,使其更加人性化。本设计在实现的过程中也遵循这个原则,增加了设置功能,以便用户在进行输入操作时可以根据自己的喜好设置不同的输入效果。应用设置界面如下图4-1所示。图4-1应用设置界面当用户通过系统设置找到当前输入法时,可以点击设置条目进入该页面,进行输入法的设置。按键声音选项控制是否开启按键声音,即在操作软盘时是否有音效。同理,按键

37、振动选项是控制在操作软盘时是否有振动效果。联想输入主要是用于中文输入时是否有联想词的功能,若开启则可以提高输入效率。设置布局的实现主要是利用PreferenceScreen作为根元素并嵌套其他标签实现的具有偏好类别的设置界面。实现的核心代码如下: 以上代码主要是通过xml文件填充了设置页面的布局,android:title属性主要是设置条目名称,设置完成后最后显示结果“用户反馈”,android:key属性相当于Android布局文件中设置控件的id,是控件的唯一标识。CheckBoxPreference是带有单选框的控件,相当于CheckBox控件。设置界面的布局采用以上方式,而非Andro

38、id传统的布局定义,可以减少代码量,且使用的控件清晰易懂。4.2 输入模块在没有智能手机前,人们进行输入时都是通过物理键盘实现的,由于硬件的限制键盘样式基本一致,但是现在输入法键盘都是通过代码实现的,所以它的样式可以根据自己的喜好设计,也可以加入多种皮肤让其变得更加美观。当前用的比较多的样式就是九宫格样式或者一直熟悉的笔记本键盘的样式。而本应用软盘的设计就是采用笔记本键盘的样式。简单、易用。4.2.1解析软盘 输入模块实现的主要功能是实现字符的输入。当用户触发输入法功能时,首先会解析输入法软盘布局文件绘制输入法软盘。当软盘形成后,用户可以操作软盘实现字符的输入。加载解析XML文件后最后绘制软盘

39、如下图4-2所示。图4-2输入法软盘绘制软盘主要是采用解析xml文件获取相关code,然后根据获取的内容绘制软盘,解析xml文件如下: while (mXmlEventType != XmlResourceParser.END_DOCUMENT) mNextEventFetched = false; if (mXmlEventType = XmlResourceParser.START_TAG) String attribute = xrp.getName(); if (XMLTAG_SKB_TEMPLATE.compareTo(attribute) = 0) Drawable skbBg =

40、 getDrawable(xrp, XMLATTR_SKB_BG, null); Drawable balloonBg = getDrawable(xrp, XMLATTR_BALLOON_BG, null); mSkbTemplate.setBackgrounds(skbBg, balloonBg, popupBg); float xMargin = getFloat(xrp, XMLATTR_KEY_XMARGIN, 0); float yMargin = getFloat(xrp, XMLATTR_KEY_YMARGIN, 0); mSkbTemplate.setMargins(xMar

41、gin, yMargin); globalColor = getColor(xrp, XMLATTR_COLOR, 0); else if (XMLTAG_KEYTYPE.compareTo(attribute) = 0) int id = getInteger(xrp, XMLATTR_ID, KEYTYPE_ID_LAST); Drawable bg = getDrawable(xrp, XMLATTR_KEYTYPE_BG, null); Drawable hlBg = getDrawable(xrp, XMLATTR_KEYTYPE_HLBG, null); int color = g

42、etColor(xrp, XMLATTR_COLOR, globalColor); int colorHl = getColor(xrp, XMLATTR_COLOR_HIGHLIGHT, globalColorHl); if (id != lastKeyTypeId + 1) return null; SoftKeyType keyType = mSkbTemplate.createKeyType(id, bg, hlBg); keyType.setColors(color, colorHl, colorBalloon);以上代码主要是对键盘布局xml文件的解析,while循环语句的判断主要是判断是否解析到文件的底部,若没有则说明文件还未解析完需要继续解析。在解析过程中通过节点解析输入法键盘的背景图片、按键效果、构成键盘的每一个key、每一个key间

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁