我不确定如何在标题中简要解释我的问题,所以请原谅我,因为我从未发布过问题。我是初学者的Android / Java新手,因为到目前为止我使用的主要语言是C ++。我的问题是我有一个游戏板布局(类似于跳棋/国际象棋)。当用户轮到他们时,他们要点击他们想要在棋盘上移动的棋子,然后是他们想要移动到的空白位置。如何实现这一目标?到目前为止,我已经实现了onClickListeners,它们从不依赖活动中的另一个按钮,然后等待用户这样做。
目前有关我项目的简要信息(不确定是否需要):
我目前正在使用ImageButtons数组(大小为36)和一个二维整数数组来保存每个按钮的信息,因为它们以6×6的方式显示在GridLayout中。在我的MainActivity类中,我实现了OnClickListener并在onClick()中为每个按钮ID创建了一个switch语句。
我不确定我的代码需要多少信息才能获得帮助,或者它是否与完全无关。我试着在互联网上寻找之前没有找到任何东西。尽管我没有正确地表达我的问题,但总有可能。谢谢大家提前!!! :)
答案 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
并使用完全透明的按钮图像作为表示空网格空间的按钮。