如何使android imagebutton对象切换图像

时间:2011-02-22 10:37:58

标签: android

我正在为Android平台构建棋盘游戏。

游戏的主屏幕上有一排按钮,用户可以用来指示他们想玩游戏的方式(1人,2人,wi-fi和网络)。

我希望知道显示通过切换图像选择选择的最有效方式。我目前正在使用ImageButton个对象来显示这些选项。当用户通过单击选择模式时,那里的图像应该被更暗的图像替换。我知道如何使用android:state_pressed执行此操作,以便在点击期间显示另一个图像。然而,我需要的是,一旦单击按钮,其他图像将替换原始图像,而不仅仅是在按住单击时,直到单击另一个按钮,此时按钮应该还原为再次显示第一个图像。有人可以告诉我该怎么做吗?

4 个答案:

答案 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();