我正在为Android平台构建棋盘游戏。
游戏的主屏幕上有一排按钮,用户可以用来指示他们想玩游戏的方式(1人,2人,wi-fi和网络)。
我希望知道显示通过切换图像选择选择的最有效方式。我目前正在使用ImageButton
个对象来显示这些选项。当用户通过单击选择模式时,那里的图像应该被更暗的图像替换。我知道如何使用android:state_pressed
执行此操作,以便在点击期间显示另一个图像。然而,我需要的是,一旦单击按钮,其他图像将替换原始图像,而不仅仅是在按住单击时,直到单击另一个按钮,此时按钮应该还原为再次显示第一个图像。有人可以告诉我该怎么做吗?
答案 0 :(得分:4)
还有其他州,而不仅仅是android:state_pressed
。
您可以点击android:state_selected="true"
使用urBtn.setSelected(true)
,点击其他按钮urBtn.setSelected(false)
。
答案 1 :(得分:1)
我同意这看起来更像是单选按钮功能而不是普通按钮,但您仍然可以通过在单击侦听器中调用yourButton.setBackgroundResource(R.id.btn_selected)来使用Image按钮完成它。您还必须将之前选择的按钮设置为在侦听器内恢复正常。
答案 2 :(得分:1)
ImageButton = image;
int isClicked = 0;
image = (ImageButton) findViewById(R.id.image);
image.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (isClicked1 == 0) {
image.setImageResource(R.drawable.second_image);
isClicked1 = 1;
} else {
image.setImageResource(R.drawable.original_image);
isClicked1 = 0;
}
}
});
您需要知道如何设置 xml 吗?
答案 3 :(得分:0)
我不建议您更改后台资源。这对每张图片都不同。
如果Alex Orlov的答案不适合您,我会尝试使用State List选择器并为android:state_focused
定义背景绘图,然后尝试这些:
image.setFocusable(true);
image.setFocusableInTouchMode(true);
image.requestFocus();