Android移动应用触摸屏的实现和优化方案

最新更新时间:2012-10-18来源: 维库电子关键字:Android  移动应用  触摸屏 手机看文章 扫描二维码
随时随地手机看文章

  近些年来,随着3G 网络的大规模建设和智能手机的迅速普及,移动互联网时代已经到来。作为Google 推出的一款操作系统,Android 自问世以来就吸引了人们广泛的关注,受到众多厂商和开发者的青睐。Android 是一个开放、完整、免费的手机平台,强大的开源特性吸引了越来越多的开发者,Android的版本如今已由最初的1.1 升级到最新的4.0,功能越来越强大,用户体验越来越好,在Android 平台上发布的应用产品更加丰富多彩。

  Android 平台上的应用越来越多,人们对应用的要求越来越高。现阶段触屏手机是趋势,触摸是人们与应用交互的主流方式,人们对触摸的灵敏度,简易性和方便度要求越来越高,有必要优化应用的触摸效果。

  1 Android 平台的触摸机制

  一般而言,事件是用户与UI(图形界面)进行交互的时候所触发的操作。例如在手机屏幕上触摸特定的区域就会触发对应的事件,在Android 中这些事件将被传送到事件处理器,它是一个专门接受事件对象并对其进行翻译和处理的方法。

  在 Android 中用户事件响应是很重要的,用户消息主要来源于3 种硬件外部设备:触摸响应(ONTouch系列方法)、按键响应(onKey系列方法)和轨迹球(Trackball)。不论我们是通过触摸方式与屏幕交互,还是使用轨迹球来交互,任何与屏幕相关的交互都是与屏幕相应位置上的视图控件的交互。现在 Android 系统的手机几乎全是触屏,基本的按键越来越少,触摸屏响应成为发展的大趋势,所以在应用设计的时候主要考虑触摸的效果问题,着重优化用户触摸响应。

图1 Android 平台用户消息处理流程

  图 1 详细说明了各种用户操作被系统捕获的过程。系统捕获用户的响应后,由Linux 驱动捕获用户的消息,经过Android 框架层的AcTIvity Manager 的作用传递给Activity中的系统方法,通过执行相应的系统方法更新View 类,消息传递至Application Framework 层,最后调用Linux 驱动,控制着界面的绘制和更新。在Android 工程中,触摸相关的接口函数主要封装在android.view.KeyEvent 类中,写触摸屏操控的时候首先导入该类的包,在Activity的子类中对该方法进行说明即可。Android 的事件处理机制相对简单,对于事件处理机制不必详细理解,实现各种响应时只需具体实现各个方法即可,各个方法的具体实现在View类中进行,下面着重说明Android 平台触摸响应的实现。

  2 Android 平台触摸响应的实现

  一般而言在 Android 中,对于触摸事件的处理如同UI 事件一样,主要通过两种方法来处理,一种是利用View 类的onTouchEvent()方法,一种是实现OnTouchLiSTener 接口的onTouch()方法。系统中当这两种方法都存在的前提下,系统将会优先采用OnTouchListener接口回调方法进行处理。一般在简单的UI 设计界面重写onTouchListener()方法,涉及到多个Activity 切换时在方法中实现Activity 信息保存与跳转即可。

  对于大型应用而言,界面状态比较复杂,触摸响应需要详细处理,系统提供了一个专门用于处理用户触摸事件的接口函数onTouchEvent()。实际开发过程中只需先声明此接口函数,然后在主View类中重写该函数实现具体的触摸效果即可。下面是接口函数的声明:

  

  触屏监听方法中只有一个MotionEvent event 参数,此类的实例中保存了玩家触屏的各种动作,常见的有:按下动作、移动动作、多点触屏、屏幕压力等,在此类中定义了很多动作的静态常量值,通过event.getAction()方法获取玩家的动作与所需动作常量值进行匹配。

  上面是声音界面的触摸响应处理:event.getAction()是键控的类型,是MotionEvent 类的系统方法,获取当前的触摸响应。当向下触摸屏幕时,就响应MotionEvent.ACTION_DOWN这个动作,当触点满足给定的区间范围,就执行相当的操作,实现游戏的状态跳转。触摸范围在划分的时候最好以屏幕的相对位置为参考点,这样在应用横竖屏的处理或者应用移植的时候会更方便,避免了频繁修改参考坐标的值。在程序入口处继承Activity 的子类中可以获取当前设备屏幕宽和高的具体属性,这样触摸范围确定时以屏幕的宽和高的属性值来定位就可以了。整个触摸部分的流程图如下:

图2 触摸屏操作响应的具体流程

  图 2 显示的是游戏过程中触摸屏幕时具体的响应流程,主要涉及到Activity 类和View类。在Activity 类中进行触摸方法onTouchEvent()的声明,在View 类中对该方法进行详细定义和说明。当触摸响应后,触发事件响应机制,event 对象通过getAction()方法获取触摸响应,获得当前的触摸点坐标event.getX()和event.getY(),与方法中的触摸范围进行判断,若在区域内则执行触摸响应。触摸响应执行后需要在触摸释放MotionEvent.ACTION_DOWN进行触摸释放的处理,及时释放当前的触摸响应。

  3 Android 平台触摸响应的优化

  值得注意的是,上面触摸响应MotionEvent.ACTION_DOWN 中,特意定义了一个临时触摸计数变量keyCount,当计数变量加到一定的程度时候才执行触摸响应。这样处理能有效地防止连续触摸响应,触摸不释放而直接跳到下一个状态,触摸变量的设置在各个界面跳转过程中尤其是游戏菜单中各界面跳转中是很有必要的。

  触摸响应中除了各个菜单界面的响应以外还有一个重要的响应就是游戏中对主角的操控。主游戏界面的触摸响应原理和菜单界面是一致的,不同的是触摸判断范围的选取有差异,菜单界面各个触摸范围是固定的,而游戏界面触摸区域的划定是动态的。由于在角色扮演等游戏中主角是核心人物,因此对主角的操控的触摸响应显得尤其重要,进行触摸设计的时候一般以主角为中心进行设计,以主角的坐标作为基本点来判断。

图3 主角控制时区域的划分

  图 3 所示的是主角移动时候的区域划分,以水平和垂直坐标轴的交点作为主角的坐标中心点,将主角周边的区域划分为10 个区域,触点在区域9-10 的时候方向向右,对称的区域5-6 的时候方向向左,区域7-8 的时候方向向下。对于区域1-4 进行进一步的划分,2-3 区域方向向上,只响应向上的操作,区域1 同时响应右键和上键,区域4 同时响应左键和上键。这样对区域进行细化符合实际情况,区域1 和区域4 的角度范围可以根据实际情况微调。

  

  以主角为中心划分主角周边的区域以后,斜上方区域响应斜上方的键控,即响应上键的时候同时响应左键或者右键;右边区域响应右键;上下区域分别响应上和下键,响应按键后执行对应的触摸按键操作,这样按照区间划分区域具有很好的用户体验。这的注意的是,主角操控的触摸键控一定得对应触摸按键的释放,要不然系统接收用户的触摸响应后对应的逻辑会一直执行下去。当event.getAction()状态为MotionEvent.ACTION_UP 时执行触摸按键的释放,触摸按键释放的操作如下:

  if ((player.keyStatus & SonicPlayer.KEY_LEFT) == SonicPlayer.KEY_LEFT)

  {player.keyUp(SonicPlayer.KEY_LEFT);}//释放具体的触摸响应

  触摸屏接口设计模块的改进在于根据主角的中心点细化区域,然后根据划分的区域执行相应的操作,同时在触摸的响应时增加了计数变量。

  4 结论

  Android 平台的触摸响应是非常重要的,本身的触摸事件处理机制比较复杂,但是触摸响应实现时非常简单,只需实现相关方法即可。应用的触屏响应主要分为菜单界面的触摸响应和游戏界面的触摸响应,这两部分的实现机制是相同的,只不过划定触摸范围的方法不同。

  在菜单各个界面中主要依靠菜单中各个图片相对屏幕的像素位置来确定触摸范围,然后实现触屏响应;在游戏界面主要以主角为中心,根据上述的区域范围划分来确定触摸范围和相应的操作。在实现触摸方法的过程中,触摸临时计数变量的设置非常必要,起到缓冲的作用,防止一次触摸键控不释放引发多个界面的响应。本论文主要对Android 平台的触摸响应进行了实现和优化,大大增强了用户体验,具有很强的应用价值。

关键字:Android  移动应用  触摸屏 编辑:探路者 引用地址:Android移动应用触摸屏的实现和优化方案

上一篇:基于FPGA的数字存储示波器的显示技术
下一篇:MAX7219在发射显示中的应用

推荐阅读最新更新时间:2023-10-17 15:05

摩托罗拉 Atrix 和 LG Optimus 2X 跑分有多强:多款 Android 手机对比
        双核手机终于出现在零售市场上,nVIDIA Tegra 2 到底比现在主流的 Snapdragon 芯片强多少呢?还是用各种跑分软件来说明问题吧。androidandme 实验室里有不少样机,这次的测试阵容是: 摩托罗拉(Motorola)Atrix LG Optimus 2X Nexus S Nexus One HTC G2 摩托罗拉 Droid Neocore     这是一款老牌的 GPU 和 OpenGL-ES 1.1 测试软件, 点击这里下载 。     LG Optimus 2X 获得了惊人的成绩——每秒 77.2 帧。而 Atrix 可能
[手机便携]
平板电脑主导移动电商 Android设备交易增长迅速
    支付公司Adyen发布了首个用于追踪不断变化的移动商务领域的季度指数。数据显示,其中一个值得注意的趋势是平板电脑越来越多地作为开展商务行为的设 备。Adyen全球移动支付指数是基于该平台上过去10个月进行的交易。该公司去年在全球处理的交易超过100亿美元,包括网络交易、移动交易以及销售店 支付交易。 该指数显示,平板电脑设备(包括iPad和Android)在过去10个月的移动交易量增长5%,从48%提高至53%。这些数据也表明了在移动商务方面平板电脑和智能手机各自扮演了不同的角色。 其他研究显示,平板电脑正形成强大的利基市场——作为一种进行休闲浏览的设备,让用户产生冲动购物,而由于受到屏幕尺寸的限制,智能手机难以实现类似
[手机便携]
Android、Chrome OS 两项操作系统或将合并
   相关消息指出,Android工程部门副总Hiroshi Lockheimer未来也将同时带领Chrome工程团队,预期与Google近年来陆续将Chrome OS、Android平台界线模糊有关。 根据华尔街日报Digits频道引述消息来源表示,Android工程部门副总Hiroshi Lockheimer未来将同时带领Chrome工程团队,或许与Google近年来陆续将Chrome OS、Android平台界线模糊有关。同时,原本Chrome工程部门副总Linus Upson则将离开原本负责职务,但相关消息并未具体透露其职位异动细节。 此外,相关消息指出Hiroshi Lockheimer之后主要负责带另Chrome
[手机便携]
系统更为流畅:一加5T获得安卓8.0正式版更新
昨天晚上,一加为一加5T用户推送了安卓8.0正式版更新。升级包大小为1889MB。一加表示本次更新主要是提高了手机的流畅性,同时续航更持久,系统则更安全。   在本次一加5T手机的更新中,一加桌面更新至V2.2,相册更新至V2.0,文件更新至V1.9,文件管理更新至V1.7.6。之前谷歌曾表示安卓8.0系统增强了对于后台APP的控制,这种限制在一定程度上延长了手机的电池续航能力。   持有一加5T手机的用户现在可以检查手机更新,不出意外的话大家就可以进入安卓8.0时代。
[手机便携]
一加5首个安卓8.0公测版发布:新增应用双开
   今天一加在社区放出首个基于安卓8.0打造的氢OS一加5公测版,刷机小王子终于吃上奥利奥了!   根据官方公告,新版系统除了更新安卓8.0底层外,也带来了诸多功能。   视觉方面,基于安卓8.0打造的氢OS重新设计了应用文件夹的样式,优化和增强了应用快捷菜单,优化了氢视窗部分视觉样式。   系统方面,新版系统增加了应用双开功能,支持微信、QQ、王者荣耀等数十个应用,而且新系统重新设计了抬手亮屏的展示样式,界面更简洁清晰,支持显示电池电量。   另外,它还增加了“自适应模式”屏幕颜色模式,你可以选择更适合你的屏幕显示效果。   相机方面,新系统重新设计了相机界面,并优化了拍照效果,人像模式也支持使用美颜。   最后值得一提的是,
[手机便携]
如何解决触摸屏的电磁干扰问题
开发具有触摸屏人机界面的移动手持设备是一项复杂的设计挑战,尤其是对于投射式电容触摸屏设计来说更是如此,它代表了当前多点触摸界面的主流技术。投射式电容触摸屏能够精确定位手指轻触屏幕的位置,它通过测量电容的微小变化来判别手指位置。在此类触摸屏应用中,需要考虑的一个关键设计问题是电磁干扰(EMI)对系统性能的影响。干扰引起的性能下降可能对触摸屏设计产生不利影响,本文将对这些干扰源进行探讨和分析。 投射式电容触摸屏结构 典型的投射式电容传感器安装在玻璃或塑料盖板下方。图1所示为双层式传感器的简化边视图。发射(Tx)和接收(Rx)电极连接到透明的氧化铟锡(ITO),形成交叉矩阵,每个Tx-Rx结点都有一个特征电容。Tx ITO位于Rx
[嵌入式]
秒杀安卓阵营,苹果iPhone搭载A11处理器
虽说苹果在iPhone上从来不过多强调性能,发布会上对配置的描述也是一两句话就带过,但每次新机出来后性能都是秒杀整个安卓阵营,所以这也让外界十分期待这次到来的A11。下面就随嵌入式小编一起来了解一下相关内容吧。 iOS 11 GM中的确泄漏了A11处理器的信息,让人看起来苹果这次是有备而来,至少在性能提升上。 从开发者送出的详细信息看,iOS 11 GM版中显示A11处理器是六核设计,其中包含了2个代号为Monsoon的高功率核心,其余4个代号是Mistral的低功率核心,更关键的是,有别于A10的Fusion设计,A11中的这六个核心全部独立寻址。 对于A11的性能表现,开发者表示,相比上一代A10,单核性能至少提升1.2
[嵌入式]
大唐移动携手NMS公司,提供中国3G应用
   新的合作伙伴关系旨在推动3G交互式娱乐平台在中国的推广和普及 领先的增值服务应用平台开发商NMS国际通讯公司日前宣布,已与大唐移动携手为中国3G移动市场提供新型交互式娱乐平台。 NMS 3G 交互式娱乐平台是基于3G网络的服务应用,此次在中国首次亮相。它将促进3G市场全新视频互动服务的应用和普及化的开展,能够实现多种互动及个人化视频应用及服务的迅速开发与部署,让运营商提高网络利用率以及每用户平均收入(ARPU),降低离网率,提高用户忠诚度,并且通过完美独特的内容打造运营商的品牌。 大唐移动副总裁陆武说道:“NMS公司在提供3G交互式视频技术方面获得广泛认可,代表产品为NMS 3G交互式娱乐平台。我们非常高兴NMS能够作
[焦点新闻]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved