Android ImageButton邻近验证
我有一个4x4的字母拼图。我想验证一下,只有那些最靠近点击/点击/按下字母的字母必须是可点击的,而其他字母则设置为不可点击。我有image1的代码(见下文)。我正在重新考虑,当我点击附近的ImageButton时,如何启用禁用的ImageButton 集合示例: 1 | 5 | 9 | 13 2 | 6 | 10 | 14 3 | 7 | 11 | 15 4 | 8 | 12 | 16Android ImageButton邻近验证,android,validation,imagebutton,Android,Validation,Imagebutton,我有一个4x4的字母拼图。我想验证一下,只有那些最靠近点击/点击/按下字母的字母必须是可点击的,而其他字母则设置为不可点击。我有image1的代码(见下文)。我正在重新考虑,当我点击附近的ImageButton时,如何启用禁用的ImageButton 集合示例: 1 | 5 | 9 | 13 2 | 6 | 10 | 14 3 | 7 | 11 | 15 4 | 8 | 12 | 16 如果我单击/按下1,则2、5和6可单击,其余不可单击。然后,我将单击2和1,3、5、6和7必须是可单击的
如果我单击/按下1,则2、5和6可单击,其余不可单击。然后,我将单击2和1,3、5、6和7必须是可单击的
问题:
if(image1.isPressed()){
图1.可点击设置(假);
图2.可点击设置(真);
图3.可点击设置(假);
图4.可点击设置(假);
图5.可点击设置(真);
图6.可点击设置(真);
图7.可点击设置(假);
图8.可点击设置(假);
图9.可点击设置(假);
图10.可点击设置(假);
图11.可点击设置(假);
图12.可点击设置(假);
图13.可点击设置(假);
图14.可点击设置(假);
图15.可点击设置(假);
图16.可点击设置(假);
}
避免编写条件代码。为每一个图像单击编写if是一种糟糕的做法。因此,您可以创建一个arraylist,它将始终保持可单击按钮。根据单击的按钮,更改此arraylist。将此列表传递给一个方法,该方法将为您启用或禁用单击。这实际上不是关于图像按钮,而是基于系统的当前状态,您将使用什么算法或方法来确定哪些区域是可单击的
我们需要把逻辑稍微分开。一方面你有自己的观点。让我们把所有与更新网格相关的内容放在一个黑框中,比如说void updateGrid(List>grid)
。让我们维护一个矩阵,其中包含确定按钮是否可单击的条目
最初,所有按钮都可以单击。单击按钮时,您将收到一些通知,比如从回调void onButtonClick(inti,intj)
,其中i
和j
给出按钮的位置。我故意对此含糊其辞,您很可能会得到一个id
,并且需要自己解决I
和j
位置。在这种情况下,您可能希望将按钮状态和位置封装在某种对象中—这取决于您
private