随便写两句备忘
做手机应用时,会经常遇到UI布局,画一堆按钮、输入框等这样的控件。我以前的做法很笨,就是给每个控件设个index索引,从1开始计,依次累加, 有按键动作时, 根据键值对index进行加、减操作定位控件焦点。
这种做法很容易想到,也很容易实现, 但问题是当有很多控件时,或者焦点切换不是依索引来排的, 这时就遇到麻烦了~
注:大多数windows桌面程序还是依index为序的,比如按Tab键就可以依次往增加索引,按shift+Tab就可以减索引。
经过分析浏览器的焦点管理, 采用算法搜索临近的控件是一种更好的方案。
这里大致先描述思想,空了再贴代码。
控件摆放在屏幕画布上, 必然有x,y,w,h这4种基本属性,再加上一个select属性标识是否获得焦点。 假设暂不考虑动态特效,那么在创建这些控件之处, 把它们存到一个容器里panel, 依据它们的x,y将它们全部画在屏幕上, select = true的控件绘制焦点框。
在按键发生改变时, 要做的就是查找出一个合适的控件, 将其select改为true.
我用到了4种算法,组合起来使用,效果不错:
最短边长计算算法
直线搜索算法
模糊搜索算法
直角三角形求边算法
这样, 不管按键或是触屏, 都能很容易得到焦点。
分享到:
相关推荐
【标题】2010上海2010SD软件开发2.0大会是关于软件开发领域的一次...通过这份PPT,观众可以了解到当时软件开发2.0时代的焦点,以及移动开发领域的最佳实践和未来趋势,这对于理解过去十年软件开发的演变具有重要意义。
手机软件测试是软件开发过程中的重要环节,尤其对于Nokia这样的知名手机品牌,确保软件的质量至关重要。本篇将深入探讨Nokia手机软件测试的相关知识点,包括手机的主要功能、软件和硬件结构、测试基础、测试流程、...
四屏设计可能意味着该焦点图是为适应不同的显示设备或分辨率而优化的,比如电脑显示器、平板电脑和手机等。 【标签解析】 "JS特效-焦点/幻灯图" 标签暗示了这个Flash焦点图可能包含JavaScript(JS)特效。尽管标题...
这篇报告主要探讨的是基于Android系统的手机通讯录网络备份软件的设计与实现,这是一款针对嵌入式系统和移动设备应用的软件开发项目。嵌入式系统是计算机技术、通信技术和半导体微电子技术的融合,它们在各种特定...
本篇论文主要探讨了基于Android平台的手机流量控制软件的设计与实现,针对当前智能手机用户在网络流量管理上的需求。随着移动智能终端的普及和互联网的快速发展,用户对于流量监控的需求日益增强,尤其是在Android...
因此,如何有效解决5G手机的充电与热管理问题成为了当前行业关注的焦点。 #### 2. 市场需求 - **手机续航能力**:在5G时代,由于数据传输速度更快、功耗更大,对手机的续航能力提出了更高要求。 - **热管理需求**:...
在产品设计时,电源管理策略应与整体系统方案相结合,平衡效率、成本、尺寸和开发周期。例如,通过采用高频开关电源技术,可以减小电感和电容的尺寸,降低电磁干扰,从而实现更紧凑的电路设计。此外,采用软件定义的...
**5G手机充电与热管理行业**在中国的发展正处于一个关键阶段,随着5G技术的普及和用户对手机性能需求的不断提高,如何有效解决5G手机在充电与热管理方面的问题成为了行业的焦点。 **1. 5G手机充电挑战:** - **...
- 软件实现与测试:详述软件开发过程,包括编程语言、工具选择,以及功能实现的具体步骤。 - 功能测试与评估:对防盗追踪软件的各项功能进行测试,验证其有效性和可靠性。 - 性能分析:分析软件在运行时的资源...
通过这篇论文,读者可以全面了解Android应用的开发流程,从需求分析到软件实现,再到测试和发布。随着Android市场的持续扩大,这样的开发实践具有很高的参考价值,对于希望从事Android开发的工程师来说,是一份宝贵...
对于电子书阅读器来说,这意味着开发者可以充分利用Android SDK(软件开发工具包)提供的APIs来实现诸如页面翻页效果、字体调整、亮度控制等功能。 电子书阅读器的核心功能之一是网络阅读。这种设计允许用户直接在...
互联网的竞争格局基本定型,那么移动互联网时代竞争的焦点在智能手机终端上,软件部分包括智能手机操作系统和应用软件。 目前智能手机操作系统有:诺基亚的Symbian、微软的Windows Mobile和Google的Android等。...
总之,"Android实时计算软件盘高度"这个项目为开发者提供了一种处理软键盘弹出时界面适配的策略,通过学习这个项目的源码,开发者可以更好地理解和解决因软键盘出现而导致的布局问题,提升应用的用户体验。
在互联网世界中,User-Agent(用户代理)是一个重要的概念,它是客户端(通常是浏览器)向服务器发送请求时,头部携带的一个字符串,用来表明访问者所使用的软件类型、版本、平台及能力。这个信息对于开发者和网站...
- **移动技术的普及**:随着智能手机和平板电脑的普及,移动应用开发和集成成为新的焦点,系统集成项目需要考虑如何支持移动设备和移动办公的需求。 - **大数据与分析**:数据量的激增促使企业寻求更高效的数据管理...
综合以上信息,我们可以推断这是一个关于S60系统下短信管理的软件开发或应用实例,重点探讨了如何通过编程手段实现短信的发送、拦截和删除,这对Symbian平台的开发者和对手机安全及自动化有兴趣的用户具有很高的参考...
5. **安全性保障**:确保用户隐私和数据安全,采用加密技术和权限管理策略。 6. **性能优化**:针对移动设备的硬件限制,进行内存管理、耗电优化,提升系统性能。 总的来说,基于Android的移动学习系统开发是一项...
5. **软件工程与项目管理**:敏捷开发方法(如Scrum和XP)开始崭露头角,软件工程中的版本控制、测试策略、文档编写等内容也是关注焦点。 6. **硬件技术**:PC硬件升级、服务器架构、存储解决方案等内容可能在期刊...