java设计网站导航条_java – 最佳实践:2D HUD屏幕导航的设计模式
如果您的应用程序具有完全处理2D绘图的GUI,那么处理绘制内容和触摸内容的最佳做法应该是什么?
更好理解的一个例子:
我有一张地图游戏.在这张地图上,我可以建造房屋和东西.
我还有一个可以扩展的信息栏.在扩展栏上,我绘制了一些有关游戏的信息,它还提供了更改不同值的界面.如果发生触摸,我必须检查信息栏是否已扩展,以确定我是否要更改地图上的内容或栏上的内容.
这是由州模式完成的,但我有一些疑问,如果这是正确的,因为我认为它可能有点复杂,因为可能的“子状态”.
基本上问题是:State Pattern(来自GoF)是处理纯图形GUI的最佳实践吗?
解决方法:
这通常的工作方式是UI是Control对象的树.每个Control都有一些边界框,并且可能有许多浮动在它上面的子控件.当发生点击时,树从上到下走(这意味着父母之前的孩子和顺序的兄弟姐妹).对于每个控件,您将看到该点是否与其边界框相交.如果是这样,给控件一个处理点击的机会(即一些虚拟的OnClick方法).如果是,请停止处理,单击完成.否则,继续走,直到你到达一个处理它的控件.
标签:java,android,user-interface,design-patterns
来源: https://codeday.me/bug/20190705/1383789.html
java设计网站导航条_java – 最佳实践:2D HUD屏幕导航的设计模式相关推荐
- Java Web应用的代码分层最佳实践
转载自 Java Web应用的代码分层最佳实践 代码分层,对于任何一个Java Web开发来说应该都不陌生.一个好的层次划分不仅可以能使代码结构更加清楚,还可以使项目分工更加明确,可读性大大提升,更加 ...
- 深入理解java虚拟机 -- jVM高级特性与最佳实践
<深入理解 Java 虚拟机–JVM高级特性与最佳实践> 关于这本书已经断断续续的看了好几遍了,使自己对jvm有了很深的理解,但是由于长时间的不用,对很多的功能点有所遗忘,特此写下这篇随手 ...
- 【转】Java中关于异常处理的十个最佳实践
原文地址:http://www.searchsoa.com.cn/showcontent_71960.htm 导读:异常处理是书写强健Java应用的一个重要部分,Java许你创建新的异常,并通过使用 ...
- 梦想成真…教学–专业的Java开发人员:工具和最佳实践
我总是喜欢分享知识. 我写博客的原因之一是分享我在软件工程师方面的知识. 创立并运行(与几个朋友一起)第一个 早在2003年, 希腊的Java用户组就是由于我们在工作中得不到足够的培训或个人开发机会, ...
- 《深入理解Java虚拟机 - Jvm高级特性与最佳实践(第三版)》阅读笔记
<深入理解Java虚拟机>阅读笔记 本repository为<深入理解Java虚拟机 - Jvm高级特性与最佳实践(第三版)>阅读笔记,因为第一章主要讲的是Java的发展历史, ...
- 深入理解java虚拟机 - jvm高级特性与最佳实践(第三版)_JVM虚拟机面试指南:年薪30W以上高薪岗位需求的JVM,你必须要懂!...
JVM的重要性 很多人对于为什么要学JVM这个问题,他们的答案都是:因为面试.无论什么级别的Java从业者,JVM都是进阶时必须迈过的坎.不管是工作还是面试中,JVM都是必考题.如果不懂JVM的话,薪 ...
- bootstrap导航条文字颜色_XEditor基础组件:导航条
导航条是网页中最常见的组件之一,它通常位于网页的顶部.当我们想浏览网站的其他部分时,我们常常会回到网页顶部,然后点击导航条中的某个链接,跳转到其他页面. XEditor提供了各种各样的导航条,在使用导 ...
- java中字符串的精确匹配_Java最佳实践–字符串性能和精确字符串匹配
java中字符串的精确匹配 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论String性能调优. 我们将专注于如何有效地处理字符串创建, 字符串更改和字符串匹配操作. ...
- java高性能序列化_Java最佳实践–高性能序列化
java高性能序列化 在使用Java编程语言时,我们将继续讨论与建议的实践有关的系列文章,我们将讨论并演示如何将对象序列化用于高性能应用程序. 所有讨论的主题均基于用例,这些用例源于电信行业关键任务超 ...
最新文章
- “安全即代码”:整合安全团队和DevOps团队
- 浅析 Linux 初始化 init 系统: UpStart
- rpm mysql 更改目录_rpm形式安装的MySQL服务 并 修改数据文件目录( red hat)_mysql...
- python numpy教程_Python中的Numpy入门教程
- python返回函数值并退出函数_Python函数的返回值和作用域
- golang中,new和make的区别
- 为什么判断list的时候,既要判断不等于null有要判断size大于0
- php socket通信(tcp/udp)
- 【unity3D】 分享学习路上的一些坑(二)——人物血条在行走时发生旋转;
- 【励志】比风水厉害100倍的宇宙定律
- TTL expired in transit (TTL 传输中过期) ping一个ip却返回另一个ip
- imx7d 通过imx7d-sdb.dts 添加 spi设备
- 启动fiddler导致浏览器无法上网的解决方法
- Mac OS X在终端中打开文件夹窗口
- Cricuit Switched Fallback (CSFB) : CDMA2000 1XRTT
- python骨灰教学_10招!看骨灰级Pythoner玩转Python的方法
- CocosCreator小游戏排行榜
- [14]Windows内核情景分析 --- 文件系统
- vue表格实现固定表头首列
- 最全的OLT设备介绍