随便写两句备忘
做手机应用时,会经常遇到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...
文章中提到的关键词,如Android手机系统、行为检测和安全策略,明确了系统的技术焦点和应用领域。通过分析应用行为来识别潜在的安全风险,这是Android应用安全检测的重要手段。此外,该系统还特别适用于个人用户,让...
因此,如何有效解决5G手机的充电与热管理问题成为了当前行业关注的焦点。 #### 2. 市场需求 - **手机续航能力**:在5G时代,由于数据传输速度更快、功耗更大,对手机的续航能力提出了更高要求。 - **热管理需求**:...
在产品设计时,电源管理策略应与整体系统方案相结合,平衡效率、成本、尺寸和开发周期。例如,通过采用高频开关电源技术,可以减小电感和电容的尺寸,降低电磁干扰,从而实现更紧凑的电路设计。此外,采用软件定义的...
**5G手机充电与热管理行业**在中国的发展正处于一个关键阶段,随着5G技术的普及和用户对手机性能需求的不断提高,如何有效解决5G手机在充电与热管理方面的问题成为了行业的焦点。 **1. 5G手机充电挑战:** - **...
- 软件实现与测试:详述软件开发过程,包括编程语言、工具选择,以及功能实现的具体步骤。 - 功能测试与评估:对防盗追踪软件的各项功能进行测试,验证其有效性和可靠性。 - 性能分析:分析软件在运行时的资源...
例如,软件开发项目通常需要跨多个领域的专业知识,对时间敏感,且要求高精准度。项目经理必须协调开发人员、测试工程师、设计师和产品经理等,确保软件按时发布,并符合既定的质量标准。 总结起来,项目管理是确保...
通过这篇论文,读者可以全面了解Android应用的开发流程,从需求分析到软件实现,再到测试和发布。随着Android市场的持续扩大,这样的开发实践具有很高的参考价值,对于希望从事Android开发的工程师来说,是一份宝贵...
在盈利模式上,云掌柜采取了免费策略,不收取客栈的软件费用,而是通过分销和技术服务等方式盈利。这与电商巨头淘宝的商业模式不谋而合,通过提供一个优质的服务平台吸引用户,再通过附加服务来实现盈利。 在推广...
对于电子书阅读器来说,这意味着开发者可以充分利用Android SDK(软件开发工具包)提供的APIs来实现诸如页面翻页效果、字体调整、亮度控制等功能。 电子书阅读器的核心功能之一是网络阅读。这种设计允许用户直接在...
互联网的竞争格局基本定型,那么移动互联网时代竞争的焦点在智能手机终端上,软件部分包括智能手机操作系统和应用软件。 目前智能手机操作系统有:诺基亚的Symbian、微软的Windows Mobile和Google的Android等。...
总之,"Android实时计算软件盘高度"这个项目为开发者提供了一种处理软键盘弹出时界面适配的策略,通过学习这个项目的源码,开发者可以更好地理解和解决因软键盘出现而导致的布局问题,提升应用的用户体验。
在互联网世界中,User-Agent(用户代理)是一个重要的概念,它是客户端(通常是浏览器)向服务器发送请求时,头部携带的一个字符串,用来表明访问者所使用的软件类型、版本、平台及能力。这个信息对于开发者和网站...
- **移动技术的普及**:随着智能手机和平板电脑的普及,移动应用开发和集成成为新的焦点,系统集成项目需要考虑如何支持移动设备和移动办公的需求。 - **大数据与分析**:数据量的激增促使企业寻求更高效的数据管理...