0

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

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

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

我不确定我的代码需要多少更多信息才能获得帮助,或者它是否完全不相关。在选择询问一无所获之前,我尝试在互联网上查找。尽管我没有正确表达我的问题,但总是有可能的。先谢谢大家了!!!:)

4

4 回答 4

0

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

于 2013-03-21T23:46:43.767 回答
0

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

于 2013-03-21T23:58:33.460 回答
0

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

于 2013-03-22T00:14:29.633 回答
0

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

我会Button在每个GridView位置上放一个单曲。然后,我会使用button.setBackground()andbutton.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并为代表空网格空间的按钮使用完全透明的按钮图像。

于 2013-03-22T00:30:29.167 回答