基于android平台的汉语语言学习应用开发--本科毕业论文内容摘要:
一种是显式的 Intent,即在构造 Intent 对象时就指定接收者,这种方式与普通的函数调用类似,只是复用的粒度( Activity/Service)有所差异;另一种是隐式 Intent,即 Intent 的发送者在构造 Intent 对象时,并不知道也不关心接收者是谁,这种方式与函数调用差别比较大,有利于降低发送者和接收者之间的耦合。 通常一个每个 Activity 的代码, java code 文件夹中存有图片资源 布局文件 存放数组,键值 河北大学 2020届本科生毕业论文 (设计 ) 9 应用程序中需要多个 UI 屏幕,也就需要多个 Activity 类,并且在这些 Activity 之间进行切换,这种切换就是通过 Intent 机制来实现的。 在同一个应用程序中切换 Activity 时,通常都知道要启动的 Activity 具体是哪一个,因此常用显式的 Intent 来实现。 河北大学 2020届本科生毕业论文 (设计 ) 10 3 应用程序 手机软件设计原则及方法 手机软件的交互设计原则可总结为如下四项。 这四项原则也是 Ben Shneiderman 的交互设计八项黄金法则: Strive For Consistency(力求一致); Enable Frequent Users to Use Shortcuts(允许频繁的使用快捷键); Offer Informative Feedback(提供明确的反馈);Design Dialog to Yield Closure(设计对话,告诉用户任务已完成); Offer Simple Error Handling(提供错误预防和简单的纠错能力); Permit Easy Reversal of Actions(应该方便用户取消某个操作); Support Internal Locus of Control( 用户应掌握控制权); Reduce Shortterm Memory Load(减轻用户的记忆负担),在移动互联网方向的衍生。 手机软件的交互设计原则为: 一 . 软件响应速度。 软件响应速度快或许不会引起用户的觉察,但是一旦软件响应速度过慢,用户就会失去耐心,降低用户满意度。 响应速度主要体现在几个方面: 1. 软件的加载速度。 最好不要因为联网或加载数据让用户长时间在 Loading 页等待,可以采用分步加载或给用户提供后台加载的选项。 2. 用户操作后的系统反馈速度。 这往往会体现在 Tab 页面的切换、弹出菜单、翻页滚动等方面。 在软 件设计过程中需要考虑不同手机的性能,采用最优的策略保证软件使用过程中的流畅。 3. 联网速度。 目前网络环境下联网的稳定性和速度往往是软件的最大瓶颈。 虽然客观条件如此,但仍需要产品设计师和开发工程师在有限的条件下降低由于联网而造成的负面影响。 例如,下一页的预读功能、友好的加载提示、接入点自动检测、有效的联网错误处理等。 4. 退出速度。 要让用户能够找到退出的地方,在退出的同时避免有过多的服务器交互,尽量把这些工作放在用户的使用过程当中。 而且尽量实现彻底退出,因为后台运行也会给用户的手机带来不必要的耗电和内存的占用。 二 . 尽量减少用户输入。 在手机上输入大量的文字很麻烦。 在软件设计中应尽量简化用户的输入,这就要求软件具有更多的针对用户操作的记忆和用户行为的预测。 例如,输入法记录用户的输入习惯常用词优先排序。 三 . 软件需要保持简洁和易用性,避免用户的误操作。 河北大学 2020届本科生毕业论文 (设计 ) 11 尤其随着智能手机大屏幕触摸屏的广泛应用,复杂的软件布局很容易导致用户的误点击,此外在软件设计中还需注意将用户常用的功能和重要的功能放在用户容易发现和容易操作的位置上。 四 . 友好的导航。 导航的设计对于手机软件应用来说非常重要。 用户需要随时知道自己所处的位置,并且能够快速的回 到起点。 例如,在手机应用中的设置返回键。 汉语学习连连看 这款应用软件正是本着以上四条原则设计的,当然,初次接触软件设计工作,还有很多需要改进的地方。 程序效果展示。 如图 ,提示开始游戏,退出游戏和关于。 如图 ,选择其中一种进行游戏 ,进入游戏,会出现正在加载的字样,如图 ,点击开始游戏会出现各种图案,同时开始计时,如图 ,如图 35.游戏成功还是失败都会提醒再来一局或者退出游戏,如图 36,37。 点击 menu 菜单,会弹出退出和取消如图 39,方便快捷的退出功能会提升应用的用户体验。 河北大学 2020届本科生毕业论文 (设计 ) 12 图 3 1 图 3 2 河北大学 2020届本科生毕业论文 (设计 ) 13 图 3 3 图 3 4 河北大学 2020届本科生毕业论文 (设计 ) 14 图 3 5 图 3 6 河北大学 2020届本科生毕业论文 (设计 ) 15 图 3 7 图 3 8 河北大学 2020届本科生毕业论文 (设计 ) 16 主要模块概述。 定义一个 6*6 二维数组 map[][]来模拟地图,并在初始化时为其所有值赋值为 1,表示 36 处全部含有图片。 当两个图片满足消去的条件并消去时,数组所对应的位置变为 0,表示此处不再有图片。 以拼音模式为例。 拼音与汉字要成对出现,共有 16 张图片, 36 处方格用来放图片。 将第一对和第二对图片分别重复两次,其他图片重复一次。 所有的图片都要在 GridView 中显示。 GridView 的使用方法是先在布局文件中对 GridView 进行配置,然后在 java 文件中再为 GridView 配置内容。 配置内容时要使用 Adapter,即适配器。 定义一个 mImageIds 数组,让适配器读取这个数组的内容。 本例中 GridView有 36个控 件, GridView为其中的每一个控件分配位置和 Id,从左到右,从上到下依次递增。 如表 31 所示。 得到 GridView 的位置后,按照我们想要的效果对数组进行赋值。 效果如图 39. 图 3 9 排成这样的效果后,再对 mImageIds 数组进行多次随机交换,即可打乱顺序,产生一个随机的排列。 效果如图 310. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 表 3 1 河北大学 2020届本科生毕业论文 (设计 ) 17 图 3 10 由于随机交换的次数有限,很 大概率上有的拼音与汉字对没有被分开,或者随机交换到一起,这就为游戏的成功进行提供了可能。 当然也有可能出现破解不了的局面,只是这种概率会很小。 如果想要完全避免这种破解不了的情况,个人想到了一种解决办法,就是记录下多种能够成功的排列方式,每次生成界面时从中随机抽取。 这种方法虽然简单,但是工作量很大,比较繁琐。 这个模块用来跟踪记录交换后的位置。 在图 39 的情形下,拼音和所对应汉字的位置满足一定关系,我们比较容易就能判断出拼音和汉字是否能对号这一条件。 而经过随即交换后,位置被打乱了,这就需要记 录下交换过程。 每次点击两个图片时,将这两个图片的位置还原到图 39 的情形进行比较判断。 所以次模块连接着两个最主要的算法,虽然简单,但是意义重大。 那么,跟踪记录是如何来实现的呢。 定义一个数组 a, a[i]=i,数组长度为 36。 用这个数组来记录各个图片的原位置。 所谓原位置,即图 39 所示的情形。 当 mImageIds 数组随即交换时,数组 a 同步交换。 这样根据图片现有的位置和数组 a 就可以得到图片的原位置。 比如处于 33 位置的汉字“星”,在随即交换时换到了 0 位置,在数组 a 中, 0 和 33也就交换了位置。 用 p 表示原位置,用 q 表 示现在的位置,则满足 p=a[q]。 此模块与其他两个算法之间的关系如下图所示。 图 3 11 河北大学 2020届本科生毕业论文 (设计 ) 18。 这个算法是整个程序最核心的算法。 判断所点击的两个图片能否消去,要判断两个条件。 第一,两个控件是否满足拼音与汉字成对的条件,即逻辑上匹配;第二 ,在拐点不超过两个的前提下,两个控件能否联通,即物理上匹配。 对于第一个条件就要用到上一个模块跟踪记录下来的位置进行判断。 按照图 310 的情形进行分组,如表 32 所示。 每个黑框内为一组,每一组第一行的两个或三个位置和第二行的两个或三个位置进行匹配。 判断逻辑匹配的算法采用了穷举法,即列举出每一种情况进行判断。 例如第一次点击的控件原位置是 12,那么第二次点击的控件如果原位置是 18 或 19,那么这两个控件就满足了逻辑上的匹配。 public boolean ispipei(int pos1,int pos2){ int position1=pos1。 int position2=pos2。 int apos1=a[position1]。 int apos2=a[position2]。 if(apos1==0||apos1==1||apos1==2){ if(apos2==6||apos2==7||apos2==8){return true。 } } if(apos1==6||apos1==7||apos1==8){ if(apos2==0||apos2==1||apos2==2){return true。 } } if(apos1==3||apos1==4||apos1==5){ if(apos2==9||apos2==10||apos2==11){return true。 } } if(apos1==9||apos1==10||apos1==11){ if(apos2==3||apos2==4||apos2==5){return true。 } } if(apos1==12||apos1==14||apos1==16||apos1==24||apos1==26||apos1==28) {if(apos2==apos1+6||apos2==apos1+7) {return true。 }} if(apos1==13||apos1==15||apos1==17||apos1==25||apos1==27||apos1==29) {if(apos2==apos1+6||apos2==apos1+5) {return true。 }} if(apos1==18||apos1==20||apos1==22||apos1==30||apos1==32||apos1==34) {if(apos2==apos16||apos2==apos15) {return true。 }} if(apos1==19||apos1==21||apos1==23||apos1==31||apos1==33||apos1==35) {if(apos2==apos16||apos2==apos17) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 表 3 2 河北大学 2020届本科生毕业论文 (设计 ) 19 {return true。 }} return false。 } 判断第二个条件是否成立的算法则要复杂许多。 连连看要求满足物理上联通的条 件是连线不超过两个拐点。 所以按照零拐点,一个拐点和两个拐点的顺序对两控件的连线进行判断。 为了方便起见,首先定义两个函数。 一个水平判断函数 horizontal 和一个竖直判断函数 vertical。 这两个函数分别用于判断水平两点或竖直两点是否满足联通。 联通的条件是两点之间(不包括两点)没有图片,即 map 数组中,两点之间(不包括两点)全为 0。 有了这两个函数,后面的工作会方便许多。 public boolean horizontal(int p1x,int p1y,int p2x,int p2y){ int ax=p1x。 int ay=p1y。 int bx=p2x。 int by=p2y。 if(ax==ay1||ay==ax1) {return true。 } if(ax==bxamp。 amp。 ay==by) return false。 if(ay!=by) return false。 if(ay==byamp。 amp。 ax!=bx){ int x_start = ax = bx? ax : bx。 //x_start=min{ax,bx} int x_end = ax = bx ? bx : ax。 //x_end=max{ax,bx} for(int x = x。基于android平台的汉语语言学习应用开发--本科毕业论文
相关推荐
oriented architecture, SOA) 和 Web 应用程序。 Java ME( Java Platform, Micro Edition)。 这个版本以前称为 J2ME。 Java ME 为在移动 设备和嵌入式设备(比如手机、 PDA、 电视机顶盒 和打印机)上运行的应用程序提供一个健壮且灵活的环境。 Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对
S QLite 以及建立 O/R 模型进行数据访问。 在系统实现部分,本文详细讨论了系统的类和系统分层,描述了系统的活动流程,以及界面设计,尤其在优化手指操作和重力感应自适应等方面的实现细节。 参考文献: [1]李刚 .疯狂 Java 讲义 [M].电子工业出版社 . 202091 [2]李刚 .疯狂 Android 讲义 [M].电子工业出版社 . 202091 [3]徐娜子 .Android
任务个数有限制。 系统界面的加载:由于应用中涉及到应用图标,图片、电影、音乐等文件的缩略图的获取及显示,为了提升系统的流畅度,系统应采用图片等耗时资源的异步加载技术。 西南科技大学本科生毕业论文 7 第 3章 系统概要设计 应用模块划分及 模块功能介绍 根据需求分析,可以划分出 5 个模块: 1) 传输记录管理模块 2) 数据库操作模块 3) 设备连接管理模块 4) 文件 /数据传输模块 5)
t Provider 能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据 Rss 解析剖析 在 Android 平台上可以使用 Simple API for XML(SAX)、 Document Object Model(DOM)和 Android 附带的 pull 解析器解析 XML 文 件。 (1)使用 SAX 读取
解未 来 移 动 网 络 的 发 展 趋势 ,更好的适应 时代需求。 研究的方法及内容 本 软 件 设计严 格按照 软 件工程的 开发过 程 进 行 规 划,保 证 系 统 的 稳 定性、可移植性。 本 课题 以 java 语言为基础, 综 合利用 Eclipse 开发 工具和 Android 平台提供的 SDK 工具包进行开发。 具体研究内容包括: ⑴ 数据源的选取。 包括选择数据源的格式
ebkit,数据库 SQLite,让你可轻易开发出来媲美于桌面应用复杂度的手机软件。 ,同时可以直接使用 Google很 1 天津工业大学 2020届本科生毕业设计(论文) 多在线服务。 Eclipse的完整开发环境,模拟器,文档,帮助,示例 将极大推动 Android快速的推广和发展。 基于 Android 众多的优点,围绕 Android 形成了一个移动手机联盟,主要的手机厂商几乎全部在列