单击按钮,该按钮等待按下活动的第二个按钮。游戏板。怎么做?

时间:2013-03-21 23:42:37

标签: android button imagebutton

我不确定如何在标题中简要解释我的问题,所以请原谅我,因为我从未发布过问题。我是初学者的Android / Java新手,因为到目前为止我使用的主要语言是C ++。我的问题是我有一个游戏板布局(类似于跳棋/国际象棋)。当用户轮到他们时,他们要点击他们想要在棋盘上移动的棋子,然后是他们想要移动到的空白位置。如何实现这一目标?到目前为止,我已经实现了onClickListeners,它们从不依赖活动中的另一个按钮,然后等待用户这样做。

目前有关我项目的简要信息(不确定是否需要):

我目前正在使用ImageButtons数组(大小为36)和一个二维整数数组来保存每个按钮的信息,因为它们以6×6的方式显示在GridLayout中。在我的MainActivity类中,我实现了OnClickListener并在onClick()中为每个按钮ID创建了一个switch语句。

我不确定我的代码需要多少信息才能获得帮助,或者它是否与完全无关。我试着在互联网上寻找之前没有找到任何东西。尽管我没有正确地表达我的问题,但总有可能。谢谢大家提前!!! :)

4 个答案:

答案 0 :(得分:0)

没有任何代码,很难说你做错了什么/对。但是,如果您将图像存储在Array中,那么当他们点击一个image时,可以将其放入变量中,该变量用于放置在他们点击下一个的View上。如果您有更精确的问题,请发布您尝试过的相关代码和错误消息(如果有)。希望这有帮助

答案 1 :(得分:0)

用户点击成员变量中的信息之后的片段存储,然后在第二次单击时检查前一个是否为空,当前单击的空格为空,并通过发布到可运行的实现来启动动画。这是简单的逻辑部分。你在哪里遇到问题

答案 2 :(得分:0)

要优化代码以更改图像,您可以在imageview上自定义动画。您可以使用动画更改图像的位置,而无需创建或存储图像。 (如果您经常使用图像位图,那么很有可能遇到OutOfMemory异常,这很容易发生在高端手机上

答案 3 :(得分:0)

如何移动按钮并更改按钮图像

我会在每个Button位置放置一个GridView。 然后,我会使用button.setBackground()button.setVisibility()来显示和隐藏带有各种图像的按钮。这样,按钮就会移动,但你实际上只是显示一个不同的按钮。

我建议这样做,因为更改按钮的可见性和图像属性比实际移动按钮更容易,尽管两种方法都是可行的。

您将维护一维图像数组[n]和一个二维数组按钮[6,6]。

例如,假设您要将图像[5]从网格位置(1,2)移动到位置(3,4):

// Hide the button at (1,2);
button[1,2].setVisibility(Button.INVISIBLE);

// Display the button at (3,4) with image #5.
button[3,4].setBackground(image[5]);
button[3,4].setVisibility(Button.VISIBLE);

此外,如果您的按钮图像存储在资源中,则可以有效地使用button.setBackgroundResource(R.drawable.image-5-id);


上面的说明讨论了如何移动Button,但现在如何触发一个Button移动,然后触发移动Button的位置。

要实现此目的,您必须定义两种状态,例如:

private final static int STATE_PICK_BUTTON = 0;
private final static int STATE_PICK_LOCATION = 1;
private int state;

初始化state = STATE_PICK_BUTTON;

  • 当系统处于第一个状态STATE_PICK_BUTTON时,全部按钮 在onClick()函数中标识的印记记忆网格 在某些情况下将系统转移到的位置 第二个州:STATE_PICK_LOCATION
  • 当系统处于第二状态STATE_PICK_LOCATION时,全部 按钮实际上是从记忆的网格中移动按钮 按住此按钮的网格位置。
  • 当然,您必须进行各种错误检查 确保在触发状态之前允许您移动按钮 过渡。

最后,上述建议可能无效,因为可能无法点击隐藏按钮。如果是这种情况,请不要更改空网格位置中按钮的可见性,而是保留所有按钮Button.VISIBLE并使用完全透明的按钮图像作为表示空网格空间的按钮。